I am trying to understand how could an Eloquent model also be a query builder. I could not see any polymorphic relationship between Illuminate\Database\Eloquent\Model
class and Illuminate\Database\Query\Builder
class in the source code. There is no inheritance or interface implementation between these two classes.
So, could anyone please explain how Laravel made it possible for an eloquent model to be a query builder? Thanks in advance.
Edit: I am asking this question because I don't understand how I could call the methods in Builder
class through my models, e.g. ModelObject::orderBy('created_at', 'asc')->get()
, where orderBy() is a method in Builder
class.