liaosankai/eloquent-reinforce

该包最新版本(v0.0.1)没有提供许可证信息。

Laravel Eloquent 模型强化

v0.0.1 2018-05-16 09:55 UTC

This package is auto-updated.

Last update: 2024-09-29 00:16:54 UTC


README

补充官方 Model 在项目缺少的功能

Ulid 主键 (HasUlidPrimaryKey)

停用 Model 原有的自动增长的数字主键方式,改用 robinvdvleuten/ulid 生成的 Ulid 字符串代替

多语言日期时间 (HasI18nAsDateTime)

原本 Model 在 $dates 中设置的字段将获取为 Carbon\Carbon 类型的数据,使用这个将支持多语言的 Jenssegers\Date\Date 替代

用法

以 User 模型为例,可以在 tests/Models 中找到这个类

use Illuminate\Database\Eloquent\Model;
use Liaosankai\EloquentReinforce\Traits\HasI18nAsDateTime;
use Liaosankai\EloquentReinforce\Traits\HasUlidPrimaryKey;

class User extends Model
{
    use HasUlidPrimaryKey;
    use HasI18nAsDateTime;

    protected $dates = [
        'last_login_at'
    ];

    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);

        // 除了 id 之外的欄位預設值,應該在建構式透過設定 $attributes 屬性來初始化
        // 避免資料庫忘記設定初始值,建議 Model 都應該定義每個欄位的初始值
        $this->attributes['remark'] = 'Hello World!';
        $this->attributes['last_login_at'] = time();
    }
}