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

use*_*289 5 php validation laravel laravel-4

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

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

谢谢

pat*_*cus 6

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

'email'=>'required|email|unique:users,email,'.$userId
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看验证规则上的文档.

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

  • 获得身份证不一定是棘手的部分.它只是根据规则的定义和使用方式或位置,将id注入有些人有问题的规则中.例如,如果规则被定义为模型上的静态属性,则需要在规则中使用某种类型的占位符,然后使用特定id替换该占位符的方法,如[this]中所述( http://stackoverflow.com/questions/28054979/laravel-4-form-validation-should-be-unique-on-update-form-b​​ut-not-if-current/28056267#28056267)提问/回答. (2认同)