为啥rule不生效呢?
public function rules()
{
switch($this->method()) {
case 'POST':
.
.
.
break;
case 'PATCH':
$userId = auth('api')->id();
return [
'name' => ['between:1,20','required','string',Rule::unique('users')->ignore($userId)],
'intro' => 'between:1,200'
];
break;
}
}
首先我在case PATCH里dd是有数据的,说明case对地方了,但是目前用户自己给自己修改资料的时候,如果没有修改用户名,还是会提示用户名重复了,确认数据库里没有重复的名字除了用户自己,到底要怎么排除用户自己呢?
Rule::unique('users.name')->ignore($userId)] 试一下
在后面拼接用户id
return [‘username’ => ‘required|alpha|min:4|unique:users,username,’.$id];
不用猜,只要把这里执行的sql语句打印出来就知道了