Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5-FormRequest规则中的条件语句_Php_Laravel 5 - Fatal编程技术网

Php Laravel 5-FormRequest规则中的条件语句

Php Laravel 5-FormRequest规则中的条件语句,php,laravel-5,Php,Laravel 5,使用Laravel 5.0,在表单请求中,可以制定如下验证规则: class MyCustomRequest extends Request { public function authorize() { return Auth::check(); } public function rules() { $rules = [ 'title' => 'required|max:255',

使用Laravel 5.0,在表单请求中,可以制定如下验证规则:

class MyCustomRequest extends Request {
    public function authorize()
    {
        return Auth::check();
    }


    public function rules()
    {
        $rules = [
            'title' => 'required|max:255',
        ];

        return $rules;
    }
}
如何创建测试条件语句的规则,例如:

'user_id' === \Auth::id();

其中user_id是requests参数bag中的一项,您可以在规则数组中使用exists规则

编辑:如果您试图检查提交的值是否与您的值匹配,则可以使用规则“in”

您需要以逗号分隔的字符串提供ID。未经测试,但您可以尝试类似的方法

public function rules()
{
    $ids = implode(",", DB::table('users')->all()->pluck('id'));
    $rules = [
        'user_id' => 'in:'. $ids,
    ];

    return $rules;
}
如果您只是尝试使用当前用户id进行检查,那么这应该会起作用

public function rules()
{
    $rules = [
        'user_id' => 'in:'. Auth::user()->id,
    ];

    return $rules;
}

不尝试检查数据库中是否存在id。。。正在尝试检查它是否与当前用户的id Auth::id()匹配。您可以使用规则“in”进行检查。更新了我的答案。希望能有帮助。
public function rules()
{
    $rules = [
        'user_id' => 'in:'. Auth::user()->id,
    ];

    return $rules;
}