2014-04-21 48 views
0

我试图创建我的网站后端用户界面。拥有管理员权限的用户可以登录管理员部分,然后编辑注册用户的详细信息。滞留laravel验证

我有一个脚本,显示所有注册用户的列表。当管理员点击特定用户的名称时,该用户的详细信息将显示在表单中。表单的输入包含以前存储的值。

现在,我想要的是,如果管理员想要更改该用户的电子邮件或用户名,新值应该是唯一的。所以我在电子邮件和用户名的验证规则中添加了唯一验证规则。现在

$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

对单引号变量不起作用我的意思是'$变量'不会打印可变值,而是它将解析$作为字符串。你应该使用“$ variable”。看看这里变量是在单引号..这是一个愚蠢的错误PHP编码器做大声笑。 编辑这一行

'username'=>'min:5|unique:users,username,$id', 

'username'=>"min:5|unique:users,username,$id", 

或本 一切都同为电子邮件领域也

'username'=>'min:5|unique:users,username,'.$id,