Laravel : EloquentModel(Illuminate\Database\Eloquent\Model) に存在しないメソッド(=find() 等)が呼ばれた場合は、__call() によって \Illuminate\Database\Eloquent\Builder の同名のメソッドが呼ばれている

Eloquentモデルは、対応するデータベーステーブルへすらすらとクエリできるようにしてくれるクエリビルダだと考えてください

↑ はどういう事か

note

  • find() など Modelクラス(Illuminate\Database\Eloquent\Model)に定義されていないメソッドは Eloquentビルダー(\Illuminate\Database\Eloquent\Builder) に委譲される
  • orderBy() など Eloqunetビルダークラス に定義されていないメソッドは Queryビルダー(\Illuminate\Database\Query\Builder) に委譲される
  • how
    • EloquentModel に存在しないメソッド(find() 等)が呼ばれた場合は、__call() によって \Illuminate\Database\Eloquent\Builder のメソッドを呼び出している

参考になったエントリー