Download the PHP package oldtimeguitarguy/eloquent-single-table-inheritance without Composer
On this page you can find all versions of the php package oldtimeguitarguy/eloquent-single-table-inheritance. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download oldtimeguitarguy/eloquent-single-table-inheritance
More information about oldtimeguitarguy/eloquent-single-table-inheritance
Files in oldtimeguitarguy/eloquent-single-table-inheritance
Package eloquent-single-table-inheritance
Short Description Simple single table inheritance for eloquent models in Laravel & Lumen
License MIT
Informations about the package eloquent-single-table-inheritance
Eloquent Single Table Inheritance
This is a very simple implementation of single table inheritance for Eloquent (Laravel & Lumen).
There are no attribute restrictions or anything that could be considered robust. There are other libraries that do those things quite well.
This simply allows you to have a single table that, when fetched, is thrown into an Eloquent model of your choice, defined by a column in that table (typically "type", which is the default keyed type column. You can customize this).
For instance, imagine you have the following table (called people
):
id | name | sex |
---|---|---|
1 | Fred | boy |
2 | Jill | girl |
... and imagine you had the following classes:
When you fetch all people, you will get a mix of boys & girls in the collection.
When you fetch just boys, you will get just boys.
When you fetch just girls, you will get just girls.
UNFORTUNATELY
- You cannot make your
Person
class abstract. - You must specify the table on the parent
- When creating a
hasMany
association, you must make sure you specify the foreign key. Otherwise, it will try to automatically generate one from the class name.