【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もぅマヂ辛い。リスカしょ・・・。