LaravelでPeopleというモデルクラスを作りましたので、MySQLにはpeoplesというテーブルを作りましたところ、プログラムの中でPeopleモデルからデータを取ってこようとすると、「peopleテーブルが存在しない」というエラーが発生しました。
あれ、Laravelはモデル名が複数形になったテーブルを参照するんじゃないの?と思って、Personモデルとpersonsテーブルを作って実験したところ、こちらも
「peopleテーブルが存在しない」というエラーが発生 ・・・
どうもLaravelは標準では、Peopleモデルはpeopleテーブル、Personモデルもpeopleテーブルを参照するようです。
しかも、AgencyPersonのような末尾に単語を含むモデルでもagency_peopleというテーブルを参照するようになるようです。
Peopleはすでに複数のものをさし、Personの複数はPeopleというルールなのでしょうか。
もちろんこれを解消するにはモデルの中で、下記のように記述すればいいだけです。
class People extends Model { protected $table = 'peoples'; }
モデルでテーブルが上手く参照できない場合は、このような単数形と複数形の法則を疑ってみるのが良さそうです。