luilliarcec/laravel-utilities

Laravel Utilities 是一个包含项目常用工具的包。

3.1.0 2023-09-24 01:31 UTC

This package is auto-updated.

Last update: 2024-09-24 03:54:30 UTC


README

run-tests Latest Version on Packagist Total Downloads GitHub license

安装

您可以通过 composer 安装此包

composer require luilliarcec/laravel-utilities

现在通过运行以下命令将配置文件发布到您的应用程序配置目录中

php artisan vendor:publish --provider="Luilliarcec\Utilities\UtilitiesServiceProvider"

目录

设置属性为大写

本节用于当您想将所有或部分属性设置为大写。

用法

// ...
use Luilliarcec\Utilities\Concerns\SetAttributesUppercase;

class User extends Authenticable
{
    use SetAttributesUppercase;
}

如果您想忽略模型的一些属性,可以在 dontApplyCase 属性中设置,如下所示。

// ...
use Luilliarcec\Utilities\Concerns\SetAttributesUppercase;

class User extends Authenticable
{
    use SetAttributesUppercase;
    
    protected $dontApplyCase = [
        'username'
    ];
}    

如果您想全局忽略属性,可以将它们添加到 utilities 配置文件中的 attributes_ignored_globally 键下。

属于认证

本节在您的数据库模型中有与认证用户相关的表时很有用。默认情况下,名称 'user_id' 被用作关系的外键,但您可以从 utilities 配置文件中的 auth_foreign_id_column 键进行更改。

您可以使用 BelongsTo Auth 特性。

  1. 此特性将为 creating 事件添加监听器,在创建模型时将认证用户与相关模型关联起来。
  2. 此外,还添加了一个全局作用域,用于检索与认证用户关联的所有记录。您可以在构建查询时通过调用 withoutAuth 函数来禁用此作用域。
  3. 此外,还提供了针对 existsunique 规则的自定义规则,为认证用户添加 where 条件。它还可以连接更多条件和基础规则 existsunique 的其他功能。

使用特性

// ...
use Luilliarcec\Utilities\Concerns\BelongsToAuthenticated;

class Invoice extends Model
{
    use BelongsToAuthenticated;
}

使用 withoutAuth 函数

Invoice::withoutAuthenticated()
    // ->where(...)
    ->get();

使用规则

use Luilliarcec\Utilities\Rules\Authenticated;

Request::validate([
    'invoice_id' => Authenticated::make('invoices', 'id')->exists() // ->where(...)
]);

小数规则

如果您想检查小数数字及其小数位数,可以使用此规则如下。

use Luilliarcec\Utilities\Rules\Decimals;

Request::validate([
    'amount' => new Decimals // by default they are 8 integers and 2 decimals
]);

Request::validate([
    'amount' => new Decimals(20, 4) // 20 integers and 4 decimals
]);

测试

composer test

版本

请参阅版本获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件luilliarcec@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可协议

MIT 许可协议 (MIT)。请参阅许可文件以获取更多信息。