Php Laravel 5-FormRequest规则中的条件语句
使用Laravel 5.0,在表单请求中,可以制定如下验证规则: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',
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;
}