大家编辑的时候都这么验证唯一参数的?

1. 运行环境

php7+mysql5.7+redis4+apache

1). 当前使用的 Laravel 版本?

8.5

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7

php-fpm 版本:7

3). 当前系统

Windows 10

4). 业务环境

生产环境

5). 相关软件版本

MySQL5.7

2. 问题描述?

添加的时候参数必须是唯一的,可以使用unique:表名进行验证,
修改的时候各位一般都怎么验证?目前是查询一遍,重复就不修改,有没有更好的方法?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

app/Http/Requests/FooRequest.php

public function updateRules()
{
    return [
        'name' => [
            'required',
            Rule::unique('table', 'name')->ignore($this->input('id')),
        ],
    ];
}
3年前 评论

如果用Laravel框架的话可以参考上面两位老哥的做法@时间和光线 @Tao ,如果是在其他框架可以使用最原始的做法 :grin::

<?php 
public function queryNameByUpdate($id,$name) :bool {
    return User::query()->where('id','!=',$id)->where('name',$name)->exists();
}
?>
3年前 评论
name => [ 
    "unique:users,name,$user->id" // 表名,字段名,排除的ID
]
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!