You do not need to specify the extended method twice if you do not want to override it with other behavior.
I personally use a lot of inheritance in my applications, and it works as expected, every relation continues to work and query, using the parent defaults or certain protected variables that you declare.
For example, if you declare protected $table = 'foo' , it will also accept this variable to fulfill its request or you can override it on the child server to request another table from the parent.
In terms of documentation, the reason why you do not find a lot of information, I think, because it is more a problem with PHP and OOP than with a specific structure.
If you want to declare polymorphic relationships, which are actually a common way to implement multiple inheritance in your SQL, Laravel has your back, with special Eloquent relationships and migration commands , for example $table->morphs('asset'); .
Hope this helps you.
source share