質問: お世話になっております。 DBレイアウトの指定がある依頼をやっていて、DBレイアウトのテーブルが全部大文字となっております。 cakephpの3系を利用しているのですが、bakeコマンドでModelを作成しようとしたところエラーになります。 > > 引用テキスト > > Base table or view not found: 1146 Table 'schema.m_*_*_*_*_s' doesn't exist > > *は伏字です。 > > > テーブルが見つからないエラーになります。 試しに小文字のテーブルを作り、bakeでモデルを作成したら、各ファイルの出力が行われました。 なので、Workbenchで大文字のテーブルを小文字にしてみようと思いましたが、 テーブル名が競合というエラーが出てしまって、直でクエリ書かないとダメなのかなと考えています。 大文字のテーブルでは、Bakeは使えないのでしょうか。 また、テーブル名が大文字の際は、皆さん、どのようにモデルの作成をしているのでしょうか。
回答: CakePHP におけるデータベースの命名規約は、以下にあります。 つまり、数英小文字+_ でのみ名付けるのが作法になります。 これに合致しない場合は、 のように setTable メソッドを使って実際のテーブル名を変更できるので、これをうまく使えばよいでしょう。 ※ただ、RDBMS によっては、識別子の大小文字区別がない場合もあります