[英]Validation array laravel
我嘗試驗證兩個數組,第二個數組需要第一個數組。
規則是:
$rules = [
'user' => 'required',
'resultadoCambio' => 'required',
'conclusion' => 'required'
];
$preguntas = PreguntasPir::all();
foreach ($preguntas as $pregunta) {
$rules['pregunta'][$pregunta->id] = 'required';
$rules['justificacion'][$pregunta->id] = 'required_if:pregunta['.$pregunta->id.'],'.strtolower($pregunta->caso_pregunta);
}
error_log('reglas -->' . print_r($rules, TRUE));
return $rules;
和日志:
[Mon Apr 1 11:07:12 2019] reglas -->Array
(
[user] => required
[resultadoCambio] => required
[conclusion] => required
[pregunta] => Array
(
[1] => required
[2] => required
[3] => required
[4] => required
[5] => required
[6] => required
)
[justificacion] => Array
(
[1] => required_if:pregunta[1],no
[2] => required_if:pregunta[2],si
[3] => required_if:pregunta[3],si
[4] => required_if:pregunta[4],no
[5] => required_if:pregunta[5],si
[6] => required_if:pregunta[6],si
)
)
以及我配置的消息:
public function messages()
{
$messages = [
'resultadoCambio.required' => 'El campo resultado de cambio es obligatorio .',
'conclusion.required' => 'El campo conclusión es obligatorio'
];
$preguntas = PreguntasPir::all();
foreach ($preguntas as $pregunta) {
$messages['pregunta['.$pregunta->id.'].required'] = 'El campo es obligatorio';
$messages['justificacion['.$pregunta->id.'].required_if'] = 'El campo es obligatorio';
}
return $messages;
}
但是當我嘗試驗證時,字段'pregunta'和'justificacion'不會驗證。 如何驗證此字段以顯示錯誤?
我改變了這樣的代碼:
foreach ($preguntas as $pregunta) {
$rules['pregunta'][$pregunta->id] = 'required';
$rules['justificacion'][$pregunta->id] = 'required_if:pregunta['.$pregunta->id.'],'.strtolower($pregunta->caso_pregunta);
}
至:
foreach ($preguntas as $pregunta) {
$rules['pregunta.'.$pregunta->id] = 'required';
$rules['justificacion.'.$pregunta->id] = 'required_if:pregunta.'.$pregunta->id.','.strtolower($pregunta->caso_pregunta);
}
和
foreach ($preguntas as $pregunta) {
$messages['pregunta['.$pregunta->id.'].required'] = 'El campo es obligatorio';
$messages['justificacion['.$pregunta->id.'].required_if'] = 'El campo es obligatorio';
}
至
foreach ($preguntas as $pregunta) {
$messages['pregunta.'.$pregunta->id.'.required'] = 'El campo es obligatorio';
$messages['justificacion.'.$pregunta->id.'.required_if'] = 'El campo es obligatorio';
}
這對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.