laravel 当我们定义特定的 id 时不需要验证器

laravel validator should't required when we define specific id

在这个 laravel 验证器 class 中,我想为 required 选择指定 id,当我们定义指定时 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',
        ];
    }
}

您可以使用 Laravel 的 required_if 验证来实现此目的。语法是这样的:

'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:未测试,如有错误,请告知。