PHP code example of mswap / single-table-inheritance
1. Go to this page and download the library: Download mswap/single-table-inheritance library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mswap / single-table-inheritance example snippets
use mswap\SingleTableInheritance\SingleTableInheritanceTrait;
class Vehicle extends Model
{
use SingleTableInheritanceTrait;
protected $table = "vehicles";
protected static $singleTableTypeField = 'type';
protected static $singleTableSubclasses = [Car::class, Truck::class];
}
class Car extends Vehicle
{
protected static $singleTableType = 'car';
}
class Truck extends Vehicle
{
protected static $singleTableType = 'truck';
}
use mswap\SingleTableInheritance\SingleTableInheritanceTrait;
class Vehicle extends Model
{
use SingleTableInheritanceTrait;
protected $table = "vehicles";
protected static $singleTableTypeField = 'type';
protected static $singleTableSubclasses = [MotorVehicle::class, Bike::class];
}
class MotorVehicle extends Vehicle
{
protected static $singleTableSubclasses = [Car::class, Truck::class];
}
class Car extends MotorVehicle
{
protected static $singleTableType = 'car';
}
class Truck extends MotorVehicle
{
protected static $singleTableType = 'truck';
}
class Bike extends Vehicle
{
protected static $singleTableType = 'bike';
}
class Vehicle extends Model
{
protected static $persisted = ['color']
}
class MotorVehicle extends Vehicle
{
protected static $persisted = ['fuel']
}
class Vehicle extends Model
{
protected static $persisted = ['color', 'owner_id'];
public function owner()
{
return $this->belongsTo('User', 'owner_id');
}
}
/**
* Whether the model should throw an InvalidAttributesException if non-persisted
* attributes are encountered when saving or hydrating a model.
* If not set, it will default to false.
*
* @var boolean
*/
protected static $throwInvalidAttributeExceptions = true;
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.