Laravel 4验证电子邮件的唯一约束

时间:2015-01-26 04:15:48

标签: php validation laravel laravel-4

我正在编写一个Laravel 4应用程序,其中包含users表,其中包含常用的联系信息。在我的users模型中,我对电子邮件的验证指定'email'=>'required|email|unique:users',,在注册新用户时效果很好。

我的问题是如何处理用户编辑表单 - 在提交表单时,我希望只有在与旧邮件不同的情况下才会触发唯一的电子邮件约束 - 否则你不能保存您的个人资料,因为电子邮件(您的电子邮件)已经在使用中。

由于

2 个答案:

答案 0 :(得分:6)

唯一规则的第三个参数允许您指定要忽略的记录的ID。当您编辑用户时,您希望您的唯一验证规则忽略您正在编辑的用户的ID所包含的值。

'email'=>'required|email|unique:users,email,'.$userId

您可以在验证规则here上查看文档。

您遇到的最棘手的部分是弄清楚如何编辑规则以提供您正在编辑的用户的ID。这一切都取决于您如何设置规则以及您在何处进行验证。

答案 1 :(得分:1)

唯一验证语法

unique:table,column,except,idColumn

尝试此操作以排除当前的电子邮件

unique:'users', 'email', Auth::user()->email