验证,而不是自我

时间:2018-01-12 15:42:51

标签: php laravel laravel-5.5

我使用的是Laravel 5.5.14并使用php artisan make:request CreateInviteRequest创建了请求或验证。

我希望用户无法邀请自己。

有没有办法给出正确的错误说"不能自我"?

现在我用'not_in:'.Auth::guard('api')->user()->id完成了这个:

public function rules(Request $request)
{
    return [
        'invite_user' => ['numeric', 'exists:users,id', 'not_in:'.Auth::guard('api')->user()->id]
    ];
}

这会显示错误消息The selected invite_user is invalid.

3 个答案:

答案 0 :(得分:1)

您可以将要忽略的ID添加为exists()规则的第三个参数:

'invite_user' => 'numeric|exists:users,id,' . auth()->id(),

答案 1 :(得分:1)

你可以通过Not In实现这一点。

public function rules(Request $request)
{
return [
    'invite_user' => 'required|email|unique:users,email',
     Rule::notIn([Auth::guard('api')->user()->id]),
  ];
}

答案 2 :(得分:1)

定义消息

public function messages()
{
   return [
     'invite_user.not_in' => 'cannot be self',
   ];
}