用 Traits 增强 Laravel 应用程序

hefengbao 发布于 2024.02.28

Traits 用来解决代码复用问题。

通常把 Traits 放在 app/Models/Traits 目录下。

大概框架如下:

<?php

namespace App\Models\Traits;

trait HasUuid
{
    public static function booted()
    {
        ...
    }

}

完整的 UUID trait 示例:

<?php

namespace App\Models\Traits;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

trait HasUuid
{
    public function getIncrementing(): bool
    {
        return false;
    }

    public function getKeyType(): string
    {
        return 'string';
    }

    public static function booted()
    {
        static::creating(function (Model $model) {
            // Set attribute for new model's primary key (ID) to an uuid.
            $model->setAttribute($model->getKeyName(), Str::uuid()->toString());
        });
    }
}

原文:

https://dcblog.dev/enhancing-laravel-applications-with-traits-a-step-by-step-guide

Laravel    Laravel   LaravelTips  

上一篇:Filament 入门:操作(Action)

下一篇:PHPStan

有 0 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注