PHP code example of phaza / single-table-inheritance
1. Go to this page and download the library: Download phaza/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/ */
phaza / single-table-inheritance example snippets
use Phaza\SingleTableInheritance\SingleTableInheritanceTrait;
class Vehicle extends Eloquent
{
use SingleTableInheritanceTrait;
protected $table = "vehicles";
protected static $singleTableTypeField = 'type';
protected static $singleTableSubclasses = ['Car', 'Truck'];
}
class Car extends Vehicle
{
protected static $singleTableType = 'car';
}
class Truck extends Vehicle
{
protected static $singleTableType = 'truck';
}
use Phaza\SingleTableInheritance\SingleTableInheritanceTrait;
class Vehicle extends Eloquent
{
use SingleTableInheritanceTrait;
protected $table = "vehicles";
protected static $singleTableTypeField = 'type';
protected static $singleTableSubclasses = ['MotorVehicle', 'Bike'];
}
class MotorVehicle extends Vehicle
{
protected static $singleTableSubclasses = ['Car', 'Truck'];
}
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 Eloquent
{
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 encoutered 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.