【CakePHP3】コントローラーから他の名前のテーブルを参照する!
CakePHP3でControllerからテーブルを参照する方法です。
デフォルトでは「$this」の配下にコントローラーと同名のテーブルがあって、それを叩くことでDBを操作できます。
<?php namespace App\Controller; use App\Controller\AppController; class UsersController extends AppController { public function display() { //ユーザー情報10件取得 $users = $this->Users->find()->limit(10)->all(); $this->log($users, "debug"); } }
では違うテーブルを参照したい場合はどうすればいいのでしょうか?
それは下記にように「TableRegistry::get」することで可能になります。
「use Cake\ORM\TableRegistry;」の名前空間の宣言も必要なのでお忘れなく。
<?php namespace App\Controller; use App\Controller\AppController; use Cake\ORM\TableRegistry; class UsersController extends AppController { public function initialize() { $this->Posts = TableRegistry::get('posts'); } public function display() { //記事情報10件取得 $posts = $this->Posts->find()->limit(10)->all(); $this->log($posts, "debug"); } }
こんな簡単なことをするのも一苦労・・・
cakephpもぅマヂ辛い。リスカしょ・・・。