【发布时间】:2018-03-08 19:59:31
【问题描述】:
我对 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,
但它总是告诉我您尝试更新的用户名已在使用中 我不想从控制器这样做 我想在请求中做 谢谢
【问题讨论】:
-
select count(*) as aggregate from
userswhereuser_name= pulldozer andid这是最后的sql语句,id 没有值 -
是认证用户还是其他用户更新?
-
其他用户更新我无法使用 Auth::user->id
-
那么你应该添加一个名为
id的隐藏输入,其中包含更新的用户ID! -
用
$this->request->get('id')替换$this->id!
标签: laravel request laravel-request