web-dev-qa-db-fra.com

Laravel ne valide pas si le champ n'est pas obligatoire

J'ai la validation de demande suivante:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class OwnerEstate extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'firstname' => 'required_if:type,individual',
            'secondname'=> 'required_if:type,individual',
            'lastname' => 'required_if:type,individual',
            'pin' => 'required_if:type,individual|digits:10',

            'name' => 'required_if:type,legal-entity',
            'eik' => 'required_if:type,legal-entity|digits:9'
        ];
    }
}

Et lorsque le type n'est pas individuel, il vérifie toujours la validation 'digits: 10' de la broche et renvoie une erreur. Comment désactiver l'autre validation si la validation required_if ne nécessite pas le champ. (j'utilise Laravel 5.5)

9
TheAngelM97

digits:10 est complètement distinct de required_if, il validera donc si le champ est obligatoire ou non. Cependant, si vous souhaitez également autoriser les valeurs nulles ou vides (en supposant que le champ n'est pas obligatoire), vous pouvez ajouter la règle nullable.

https://laravel.com/docs/5.5/validation#rule-nullable

16
Devon