//PagesTable.php
class PagesTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Books');
}
}
//BooksTable.php
class BooksTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('Pages');
}
}
从上述两个模型中,我想要检索BooksController
中属于特定图书的页面。
经过几个小时的文档记录后,我以某种方式构建了这个能够实现我想要的东西。
$pages = $this->Books->Pages->find()->where(['Pages.book_id' => $id]);
我有一种感觉,我没有在这里利用蛋糕,因为它看起来像我正在构建自定义查询而不是仅仅拉动相关数据。但作为蛋糕3.0的初学者(没有蛋糕2.x的经验),这是我能做的最好的。
我走对了路吗?
是否有更好的方法来查找图书的页面(关联的hasMany模型的行)?
答案 0 :(得分:0)
有一种更简单的方法可以检查: 在控制器中
$maestro = $this->Maestro->get($id, [
'contain' => ['DetalleMaestro']]);
$this->set('maestro', $maestro);
在db中搜索所有maestro记录和相关记录detallemaestro 在视图中
<?php if (!empty($maestro->detalle)): ?>
<h5><?= __('Fuentes de Informacion Asociadas') ?></h5>
<table cellpadding="0" cellspacing="0">
<tr>
<th><?= __('Nombre 1') ?></th>
<th><?= __('Nombre 2') ?></th>
<th><?= __('Nombre 3') ?></th>
<th><?= __('Nombre 4') ?></th>
</tr>
<?php foreach ($maestro->detalle as $detalle): ?>
<tr>
<td><?= h($detalle->1) ?></td>
<td><?= h($detalle->2) ?></td>
<td><?= h($detalle->3) ?></td>
<td><?= h($detalle->4) ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
检查Maestro是否有关联并显示