【问题标题】:Stuck on laravel validation卡在 laravel 验证上
【发布时间】: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


    【解决方案1】:

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

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

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

    或者这个 电子邮件字段也一样

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-13
      • 2014-06-30
      • 2017-07-25
      • 1970-01-01
      • 2014-01-20
      • 2021-04-28
      • 2020-09-02
      • 2017-01-28
      相关资源
      最近更新 更多