валидатор laravel не должен требоваться при определении конкретного идентификатора

#laravel #laravel-validation

#laravel #laravel-проверка

Вопрос:

в этом классе валидатора laravel я хочу выбрать указать id для required , когда мы определяем, указать, например, parent не должно требоваться или status , и я не знаю, как я могу выполнить эту проверку

например:

 'parent'=>'required/*when id is not 1*/|integer',
'status'=>'required/*when id is not 1*/|string',

class RequestCategory extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'category_name'=>'required|string|min:5:max:20',
            'parent'=>'required|integer',
            'status'=>'required|string',
        ];
    }
}
  

Ответ №1:

Для достижения этого вы можете использовать проверку Laravel required_if. Sintax выглядит следующим образом:

 'field_name' => 'required_if:columnName:value'
  

Я думаю, вы могли бы попробовать это:

     public function rules()
    {
        return [
            'category_name'=>'required|string|min:5:max:20',
            'parent'=>'required_if:status,!=,1|integer',
            'status'=>'required_if:parent,!=,1|string',
        ];
    }
  

PS: Не тестировался, если здесь есть какие-либо ошибки, дайте мне знать.