簡體   English   中英

驗證數組laravel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM