Laravel 4 Validation unique(数据库)忽略当前

Med*_*tnz 20 validation laravel laravel-4

我正在对用户编辑表单进行验证,如果用户名在数据库中是唯一的,则进行验证检查.

但是,当编辑用户并且您没有更改用户名字段时,它仍在检查该字段是否唯一...

如果不更改,是否有一种忽略当前用户名的laravel方法?

Med*_*tnz 28

应该更多地阅读文档,当然laravel 4这样做...

我有什么

$rules = array('username' => 'required|unique:users');
Run Code Online (Sandbox Code Playgroud)

是)我有的

$rules = array('username' => 'required|unique:users,username,'.$id);
Run Code Online (Sandbox Code Playgroud)

您可以告诉验证者忽略上面给定的ID.

  • 你也可以这样做 $rules = array('username' => 'required|unique:users,username,{{$id}}'); (2认同)
  • 应该有一个更好的方法来做到这一点(我想我以前做过,只是记不清楚).我在`$ rules`属性上保存每个模型规则,并且我想在更新时检查唯一性时自动跳过自身. (2认同)

has*_*b32 9

这个解决方案对我有用:

protected  $rules = array(
    'email' => "required|email|unique:users,email,:id",
);
Run Code Online (Sandbox Code Playgroud)