CakePHP テーブルクラスとエンティティクラスについて(その2)
- 2020年2月13日
- 技術情報
今回は前回作成したテーブルクラスおよびエンティティクラスに、コントローラークラスからアクセスをおこない、データベースに保存されているレコード内容をビューに表示する方法の説明をおこないたいと思います。
本記事には前回の「CakePHP テーブルクラスとエンティティクラスについて(その1)」の続きです。
データベースに保存されているレコード内容を全件出力する場合の例を以下に示します。
■コントローラークラスの作成
以下階層にStudentsControllerクラスの作成をおこないます。
C:\xampp\htdocs\caketest\src\Controller\StudentsController.php
<?php
namespace App\Controller;
use App\Controller\AppController;
class StudentsController extends AppController
{
public function index()
{
$this->viewBuilder()->autoLayout(false);
//studentsテーブルから全件取得します。
$data = $this->Students->find('all');
//DBの検索結果をビューに渡します。
$this->set('data', $data);
}
}
■ビューの作成
上記のコントローラーから、ビュー側にデータベースの検索結果($data)を渡しているので、ビュー側でforeachでループさせて全件表示します。
<h2>テーブルクラスとエンティティクラス</h2>
<div class="table-responsive">
<table class="table table-striped table-sm">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Mail</th>
</tr>
</thead>
<tbody>
<?php foreach($data->toArray() as $obj): ?>
<tr>
<td><?=h($obj->id) ?></td>
<td><?=h($obj->name) ?></td>
<td><?=h($obj->mail) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
http://localhost/caketest/students にアクセスをおこなうとデータベースの内容がビューに反映されていることが確認できます。
データベースの内容:

ビューへの出力結果:

次回はCakePHPのデータベースのCRUD処理についての説明をおこないたいと思います。
木曜日担当:nishida
nishida at 2020年02月13日 10:00:25