CakePHP3で特定のテーブルを読み込みViewで表示する方法。

以前書いた「CakePHP3でコントローラーで特定のテーブルの値を取得する方法。(TableRegistryクラスの使い方)」の応用にもなるのですが、今回は取得後にViewファイルに渡してViewファイルで表示してしまおう!というもの。

特定のテーブルを指定するので今回もTableRegistryを使用し、初期テーブルを設定します。

use Cake\ORM\TableRegistry;

public function initialize()
{
parent::initialize();
$this->table_name = TableRegistry::get(‘テーブル名’);
}

続いて、setを使用してデータを放り込みます。全ての要素を取得したい場合は下記を使用して、

$this->set(‘datas’, $this->table_name->find(‘all’));

要素を指定する場合は、下記を指定します。

$this->set(‘datas’, $this->table_name->find()->where([‘id’ => 1]));

そうするとviewファイルにdatasで値渡しができるので、あとはforeachで繰り返しで読み込むのみ。

<table>
<?php foreach ($datas as $data): ?>
<tr>
<td><?= h($data->value_1); ?></td>
</tr>
<?php endforeach; ?>
</table>

これで簡単に一覧テーブルなどを表示することが出来ます。

便利。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする