Quando un messaggio di riempimento utente (area di testo) non può riempire i valori di data, ora, luogo.
Questi tre campi prenderanno in considerazione solo quando il messaggio è vuoto e tutti e tre i campi sono riempiti.
Come fare ciò utilizzando la convalida del modulo Laravel? È possibile definire queste logiche nel metodo delle regole della richiesta?
Sono nuovo per Laravel.
Grazie in anticipoLaravel Convalida modulo con operatori logici
5
A
risposta
4
È possibile raggiungere questo (lato server) utilizzando le regole di convalida condizionali:
- required_if: anotherfield, valore, ...
- required_unless: anotherfield, il valore , ...
- required_with: foo, bar, ...
- required_with_all: foo, bar, ...
- required_without: foo, bar, ...
- required_without_all: foo, bar, ...
direi per il vostro caso:
- data è necessaria a meno che il messaggio è compilato
- tempo è richiesto a meno che il messaggio non sia stato compilato
- luogo è necessaria a meno che il messaggio è riempito in
- messaggio è richiesto senza tutti data, ora, luogo
regole catena se ne avete bisogno, separandoli con tubo
segue un esempio di snippet. Utilizzare questo metodo all'interno del vostro ExampleFormRequest estendere Request
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [];
switch ($this->method()) {
case 'PATCH':
case 'PUT':
case 'POST':
$rules = [
'date' => 'required_without:message',
'time' => 'required_without:message',
'venue' => 'required_without:message',
'message' => 'required_without_all:date,time,venue',
];
break;
default:
// Perform no alteration to rules
break;
}
return $rules;
}
Checkout documentation here
2
Come ha detto la regola di convalida come il campo 'Messaggio' o tutti questi tre ('data', 'tempo',' luogo ") devono essere riempiti. Quindi le regole dovrebbero apparire come sotto.
$rules = [
'date' => 'required_with_all:time,venue|required_without:message',
'time' => 'required_with_all:date,venue|required_without:message',
'venue' => 'required_with_all:date,time |required_without:message',
'message' => 'required_without_all:date,time,venue',
];
+0
sì, questo è quello che stavo cercando. – Sachith
Quindi si desidera che il campo del messaggio sia riempito dall'utente o solo quei tre campi. Ma non tutti e quattro insieme? Qualcuno ha bisogno di essere compilato? –
Sì, non tutti e quattro insieme. – Sachith