CakePHPで全てのモデル/テーブル名一覧を取得

スポンサーリンク

CakePHP 3 の開発で、モデル名(DBテーブル名)の一覧を取得したい機会がありました。ConnectionManager を通して、SchemaCollection の listTables() メソッドを使うことで取得できました。

— 環境 —
PHP 5.5.19
CakePHP 3.1.1

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

CakePHP コンソールでの確認

調べたところ、以下のようにすればモデル名/テーブル名の一覧を取得できることが分かりました。記事末尾の StackOverFlow リンク先などに、いくつか情報があります。

まずは、CakePHP のコンソールで動作確認を試してみた。

phinxlog というのは、CakePHP 3 のマイグレーション機能を担う Phinx が使うログ用のテーブル。なので、必要ない場合は除外するなど。

コントローラー等で使う場合

以上のとおりにモデルのテーブル名を取得できるので、コントローラーの中などで必要なときは、以下のように書くとモデルのテーブル一覧を取得できる。

以上です。

スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
 
スポンサーリンク

Leave Your Message!