我有一个设置表单,用户可以在其中更新他们的信息。
我的验证代码看起来像
$rules = array(
'active' => 'required',
'email' => 'email',
'username' => "required|alphaNum|unique:users,username,{{$id}}",
'password' => 'sometimes|min:3'
);
$id
包含当前用户的用户 ID。
但是当username
值是用户的当前用户名时,我不断收到The username has already been taken.
错误消息。
我也尝试了这条线作为'username' => "required|alphaNum|unique:users,username,".$id,
要将变量嵌入到字符串中,必须使用"
双引号:
$rules = array(
'active' => 'required',
'email' => 'email',
'username' => "required|alphaNum|unique:users,username,{{$id}}",
'password' => 'sometimes|min:3'
);
我不得不将字符串转换为$id,所以它是:
'username' => "required|alphaNum|unique:users,username,".(string)$id,
如果您使用 primaryKey 作为 varchar。重要的是,给定的$id没有空格(修剪)。这让我花了几个小时才找到答案。