jaspaul/eloquent-sti

eloquent 的一个简单单表继承库。

1.0 2020-01-21 00:16 UTC

This package is auto-updated.

Last update: 2024-09-21 20:20:47 UTC


README

Build Status Coverage Status Code Climate

安装

通过 Composer

$ composer require jaspaul/eloquent-sti

要求

此版本支持以下 PHP 版本。

  • PHP 7.2
  • PHP 7.3
  • PHP 7.4

使用方法

<?php

use Tests\Helpers\User;
use Tests\Helpers\Administrator;
use Jaspaul\EloquentSTI\Inheritable;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use Inheritable;

    /**
     * Provides a map of types to resolve for this object. The format is:
     *     'user' => User::class,
     *     'administrator' => Administrator::class
     *
     * @var array
     */
    protected $types = [
        'user' => User::class,
        'administrator' => Administrator::class
    ];
}
<?php

class Administrator extends User
{
}

现在当你通过 User 模型选择用户时,他们将与关联的类型一起返回。例如,如果你在用户表中有一个类型为管理员记录,当你运行 User::where('type', 'administrator')->first() 时,将返回一个 Administrator 对象。