waad/laravel-duplicated-unique-soft-delete

将媒体添加到您的 Laravel 应用程序的一个位置

v1.0.0 2023-04-01 11:51 UTC

This package is not auto-updated.

Last update: 2024-09-24 10:26:22 UTC


README

Banner

📌 复制唯一软删除包

使用软删除删除唯一列不是推荐的方法,但在某些数据不重要的情况下仍然可行。

 

🧔 作者

 

🎈 最小要求

  • PHP >= 8.0.0

 

💯 安装

通过 Composer 安装

composer require waad/laravel-duplicated-unique-soft-delete

 

🧰 使用方法

模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\SoftDeletes;
use Waad\DUSD\DeleteUniqueable;

class Post extends Model
{
    use SoftDeletes;
    use DeleteUniqueable;


    // Important: Unique columns to check
    public $unique_attributes = ['serial_number', 'mac_address'];
    

 

  • 我们有以下参数帮助您在请求中进行选择

1 - unique_or_operator

它不会检查所有唯一列,必须是变量,但它至少考虑一个变量列,以删除旧列并插入新列。

values = 1true

 

2 - unique_select_attributes

它不会检查模型中指定的所有唯一列,只会检查这里参数中指定的列。

例如,values = serial_number,mac_address

 

⚠️ 注意:必须从控制器请求表单中删除唯一验证

例如:

public function rules()
{
    return [
        'name' => 'required|string|max:255',
        'serial_number' => 'required|string|max:255,
        'mac_address' => 'required|string|max:255',
    ];
}

改为:

public function rules()
{
    return [
        'name' => 'required|string|max:255',
        'serial_number' => 'required|string|max:255|unique:items,serial_number',
        'mac_address' => 'required|string|max:255|unique:items,mac_address',
    ];
}

 

🎀 示例

  • POST 方法创建示例
name:Item 3
serial_number:s6
mac_address:m6

 

使用参数

name:Item 3
serial_number:s6
mac_address:m6
unique_select_attributes:serial_number
unique_or_operator:1

⚠️ 当在此处使用 unique_or_operator 时,将仅检查 serial_number 并在检查时使用 or,无论是否存在与 serial_number 相同记录的 mac_address

 

🎯 许可证

MIT License