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')
.
我有关于 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')
.