【发布时间】:2014-06-05 08:37:55
【问题描述】:
我正在尝试创建我的网站的后端 UI。具有管理员权限的用户可以登录到管理员部分,然后编辑注册用户的详细信息。
我有一个显示所有注册用户列表的脚本。当管理员单击特定用户的名称时,该用户的详细信息将显示在表单中。表单的输入包含以前存储的值。
现在,我想要的是如果管理员想要更改该用户的电子邮件或用户名,新值应该是唯一的。所以我在电子邮件和用户名的验证规则中添加了唯一的验证规则。
$rules = array(
'name'=>'min:2',
'email'=>'email|unique:users',
'username'=>'min:5|unique:users',
'password'=>'min:5',
'cpassword'=>'required_with:password|same:password'
);
现在,如果管理员想要更改名称,则表单不会转发并给出用户名和电子邮件应该是唯一的错误,因为这是我在规则中写的。
然后我在表单中创建了一个隐藏字段(名为 id),其中包含该特定用户的 id。我通过回显$id = Input::get('id') 检查了 id 的值,它显示了该特定用户的 id。
我尝试在规则中使用此 ID:
$rules = array(
'name'=>'min:2',
'email'=>'email|unique:users,email,$id',
'username'=>'min:5|unique:users,username,$id',
'password'=>'min:5',
'cpassword'=>'required_with:password|same:password'
);
但我仍然在提交表单时遇到错误,即电子邮件和用户名应该是唯一的。为什么我已经提到在检查唯一性时忽略用户的ID,它仍然显示错误?
【问题讨论】:
标签: validation laravel