1

我对 laravel 5.5 有自定义请求这是请求

public function rules()
{
    if($this->method() == 'POST')
    {
        return [
            'user_name' => 'required|unique:users|max:40|min:1',
            'user_email' => 'required|email|unique:users|max:40|min:3',
            'user_phone' => 'required|max:40|min:1',
            'password' => 'required|min:3',
            'image' => 'image|mimes:jpg,jpeg,gif,png|max:2048',
        ];          
    }
    elseif($this->method() == 'PATCH')
    {
        return [
            'user_name' => 'required|min:1|max:40|unique:users,user_name,'.$this->id,
            'user_email' => 'required|email|unique:users|max:40|min:3',
            'user_phone' => 'required|max:40|min:1',
            'password' => 'required|min:3',
            'image' => 'image|mimes:jpg,jpeg,gif,png|max:2048',
        ];              
    }

现在在方法路径上,我想忽略当前的唯一 ID,我这样写

'user_name' => 'required|min:1|max:40|unique:users,user_name,'.$this->id,

但它总是告诉我您尝试更新的用户名已在使用中我不想从控制器执行此操作我想在请求中执行此操作谢谢

4

1 回答 1

3

您正在使用$this->id,这里$this不是 User 类而是 Request 实例,您可以考虑使用$this->user()->idor auth()->id()orAuth::id()代替。如果您在路线中有用户 ID users/{userId},您也可以使用$this->route('userId').

于 2017-09-27T11:10:51.090 回答