【问题标题】:Unique phone number checks with ignoring soft delete record - Laravel忽略软删除记录的唯一电话号码检查 - Laravel
【发布时间】:2020-09-08 01:30:29
【问题描述】:

我想在我的客户表上添加验证。我试图忽略软删除记录并检查活动记录的电话号码的唯一性。

$validation = Validator::make($data, [
            'phone_number' => 'required|unique:customers,deleted_at,NULL',
            'location_coordinates' => 'required',
            'address' => 'required',
            'location' => 'required',
            'name' => 'required'
        ]);

字段名称是phone_number。

它不工作。任何帮助都是不言而喻的。谢谢。

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

你可以通过使用规则来做到这一点。

use Illuminate\Validation\Rule; 


'phone_number' => ['required', Rule::unique('customers', '<column for phone number>')->whereNull('deleted_at')],

【讨论】:

    【解决方案2】:

    我认为你的代码中的问题是你错过了文件名:

    'phone_number' => 'required|unique:customers,deleted_at,NULL' ... 
    

    应该是这样的:

    'phone_number' => 'required|unique:customers,phone_number,NULL,id,deleted_at,NULL',
    

    您可以使用 clouser 使唯一约束尽可能简单:

    'phone_number' => Rule::unique('customers','phone_number')->ignore($currentRecord->id)->where(function ($query) {
        return $query->where('deleted_at','=', null);
    });
    

    更多细节在:

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

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 2015-05-19
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多