我正在尝试创建我网站的后端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时,为什么它仍然显示错误?
答案 0 :(得分:0)
单引号变量不起作用我的意思是' $ variable'不会打印可变值,而是将$解析为字符串。你应该使用" $ variable" 。看这里变量是单引号..这是一个愚蠢的错误PHP编码器做大声笑。 编辑此行
'username'=>'min:5|unique:users,username,$id',
到
'username'=>"min:5|unique:users,username,$id",
或者这个 电子邮件领域的所有内容都相同
'username'=>'min:5|unique:users,username,'.$id,