douba9020 2017-07-24 10:52
浏览 52
已采纳

更新期间验证用户电子邮件字段

I am new to laravel.

Currently, I'm working on user table CRUD operations. I've no problems while create, delete and read. I want to update user email column with validation.

When I've made email field as unique, no problem while creating since it will work perfectly with no duplicate email fields.

Validation:

$this->validate($request,[
    'email' => 'required|unique:users'
],
$messages = [
        'required' => 'The :attribute field is required.',
        'unique' => 'The :attribute must be unique',
    ]
);

But, While updating the record, if email field is not changed and other changed, validation fails due to unique violation because of email is checked with record it self.

I want uniqueness in email field even if user email is changed.

Can anyone give me some suggestion to get out of this problem ?

  • 写回答

3条回答 默认 最新

  • douyan6958 2017-07-24 10:58
    关注

    What you want to do is ignore a specific user ID during the validation process. By passing an ID to ignore to your unique rule, Laravel will exclude that user when checking the uniqueness of the email address.

    https://laravel.com/docs/5.4/validation#rule-unique

    The format of the rule is:

    unique:table,column,except,idColumn
    

    And in your scenario you can use it like this:

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

    Where the $userId in this scenario is the ID of the user you're updating. Usually, this will be present in your request so you should be able to access it from there. If the column you want to ignore is different from id you can add that as the next part of your rule:

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

    An alternative, and more readable syntax for the unique rule in versions 5.3 and above is:

    Rule::unique('users')->ignore($userId),
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题