Php Laravel验证程序唯一,但用户id不工作

Php Laravel验证程序唯一,但用户id不工作,php,laravel,Php,Laravel,我有一个设置表单,用户可以在其中更新他们的信息 我的验证代码看起来像 $rules = array( 'active' => 'required', 'email' => 'email', 'username' => "required|alphaNum|unique:users,username,{{$id}}", 'password' => 'sometimes|min:3'

我有一个设置表单,用户可以在其中更新他们的信息

我的验证代码看起来像

    $rules = array(
        'active'    => 'required',
        'email'     => 'email',
        'username'  => "required|alphaNum|unique:users,username,{{$id}}",
        'password'  => 'sometimes|min:3'
    );
$id
包含当前用户的用户id

但是我不断地得到
用户名已经被使用。
用户名
值是用户的当前用户名时出现错误消息


我还尝试了以下行:
'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'=>“必需的| alphaNum |唯一的:用户,用户名,”。(字符串)$id,

如果将primaryKey用作varchar。重要的是,给定的$id没有空格(修剪)。这让我花了几个小时才发现这一点。

嗨,即使使用双引号,它也会返回用户名已被使用。通过查看似乎
,“$id
是正确的方法。但您要将其与之进行比较的列是用户名,而不是用户id。