cd4*_*ess 1 authentication validation laravel
public function store()\n{\n$this->validate(request(),[\n// Third try\n\xe2\x80\x98username\xe2\x80\x99 => \xe2\x80\x98required|string|regex:/\\w*$/|max:255|unique:users\xe2\x80\x99,\n// Second try\n\xe2\x80\x98username\xe2\x80\x99 => \xe2\x80\x98required|string|regex:/^[A-Za-z0-9]+(?:[_-][A-Za-z0-9]+)*$/|max:255|unique:users\xe2\x80\x98,\n// First try \n\xe2\x80\x99username\xe2\x80\x99 => \xe2\x80\x98required|string|max:255\xe2\x80\x99,\n]);\n}\nRun Code Online (Sandbox Code Playgroud)\n用户名字段与包含的数字配合良好(第一次尝试),但后来我忘记包含 \xe2\x80\x9cunique:users\xe2\x80\x9d,然后表单开始拒绝它(重定向回用户名字段,并用 wriggle 下划线)红线)。另外,我已经多次使用 laravel\xe2\x80\x99s \xe2\x80\x9calpha_dash\xe2\x80\x9d 但一直拒绝输入。我的目标是字母、数字、下划线和破折号的混合。
\n请一些人帮我解决这个问题。谢谢
\n你缺少参数。它应该是unique:table,column,except,primarykeyname
最后两个参数是可选的。在您的情况下,存储用户的验证应如下所示:
'username' => 'required|string|regex:/\w*$/|max:255|unique:users,username',
Run Code Online (Sandbox Code Playgroud)
这样,您就可以说数据库中不应该存在具有相同用户名的用户。
但是,当您想要更新用户时,您应该添加用户的 ID 作为第三个参数,以便唯一用户名的验证会忽略您尝试更新的用户。
'username' => 'required|string|regex:/\w*$/|max:255|unique:users,username,'.$user->id,
Run Code Online (Sandbox Code Playgroud)
如果您的主键未命名为 id,则将其名称添加为第四个参数:
'username' => 'required|string|regex:/\w*$/|max:255|unique:users,username,'.$user->userId.',userId',
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5703 次 |
| 最近记录: |