jaspaul/eloquent-sti
Eloquent STI (Single Table Inheritance)
Install
Via Composer
$ composer require jaspaul/eloquent-sti
Requirements
The following versions of PHP are supported by this version.
- PHP 7.2
- PHP 7.3
- PHP 7.4
Usage
<?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
{
}
Now when you select users through the User model, they'll be returned with the associated type. For instance if you have a record in the users table with the type administrator, an Administrator object will be returned when you run User::where('type', 'administrator')->first().
Related Packages
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
641,106,524
9,700
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
418,291,778
609
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
394,964,158
4,660
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 1.0 | >=7.2 | ^6.0 | MIT | |
| v0.2 | >=7.1 | ^5.5| | MIT | |
| v0.1 | >=7.0 | ^5.6 | MIT |