質問: Laravel 5.1を使用しております。 既存のデータベースを使いLaravelでWebサイトをリニューアルしようとしております。 "persons"というテーブルを使いたいので、Personというモデルを作成、アクセスしようとしたところ、 SQLSTATE[42S02]: Base table or view not found: 1146 Table 'データベース名.people' doesn't exist (SQL: select count(*) as aggregate from `people`) というエラーが出てきました。 調べたところ、Pluralizerが働いているようなので、コアコードを削除を試みましたが、削除箇所がわからず..、またコアをいじらずpersonsテーブルを使う方法があれば試したいのですが.. (具体的にはInflector.phpのperson関連を削除してみても変わらず、といったところです。 また、postsテーブルなどにはアクセス出来ております。) 初歩的な質問かもしれませんが、ご存知の方がいればご教示いただければ幸いです。m(_ _)m
回答: Laravelのドキュメントによると、モデルではテーブルを指定することが可能です! 秘訣はLaravelのドキュメントの「`Defining Models` `-> Table Names`」というところで見つかります。特に`protected $table = 'persons';`という文を通して、自分のテーブルを指定することができそうです。 超簡単なモデル例: ``` class Person extends Model { protected $table = 'persons'; } ```