laravel 自定义请求编辑唯一

laravel custom request edit unique

我有关于 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,

但它总是告诉我您要更新的用户名已被使用 我不想从控制器上这样做 我想在请求中这样做 谢谢

你使用的是$this->id,这里$this不是一个Userclass而是一个Request实例,你可以考虑使用$this->user()->id或者auth()->id()或者Auth::id() 代替。如果你在路由中有像 users/{userId} 这样的用户 ID,你也可以使用 $this->route('userId').