我有两个表artists
和pictures
与artist hasMany paintings
关系。CakePHP 3:如何显示index.ctp中每个记录的关联数据?
而不是为每个显示相关图片的艺术家设置一个单独的view.ctp。我只是想在index.ctp文件中显示所有艺术家列出的每个相关图片(ID列表)。
看完食谱和bazillion线程后,我完全困惑,不明白我该怎么做。 (我还是很新的PHP和CakePHP)
在view()
功能单一的艺术家,我可以很容易地获得相关的图片是这样的:
控制器:ArtistsController.php
..
public function view($id=null)
{
$artist = $this->Artists->get($id, [
'contain' => ['Paintings']
])
...
}
然后通过执行获得相应view.ctp一切:
view.ctp
<?php foreach ($artist->paintings as $paintings): ?>
<ul><li> <?= h($paintings->id) ?> </li></ul>
....
<?php endforeach; ?>
但是,我该如何去为表中列出的每位艺术家做相似的index.ctp/index()函数?所以我基本上可以这样做:
<?php foreach ($artists as $artist): ?>
<tr><td> <?= h($artist->name) ?> </td></tr>
<tr><td> <?php foreach ($artist->paintings as $paintings): ?>
<ul><li> <?= h($painting->id) ?> </li></ul>
<?php endforeach; ?>
</tr></td>
<?php endforeach; ?>
我知道这不是真的那样工作,但我该怎么做呢? 我是否必须在控制器的index()函数中使用find()查询并将结果存储在视图中之前?我确实尝试过,但它没有显示任何内容,或者它本身显示了一个SQL查询,因为我搞乱了语法......
因此,在尝试书中的各种事情并寻找小时后,似乎我缺少一些基本的理解在我的大脑里。还有我发现的所有类似问题都让我无所适从。
即使从这开始的提示将是伟大的!非常感谢!
在你看来,你想看到像索引数据?或者只想查看一个用户关联数据? –
我不完全明白你的意思;)。 我想看到正常的index.ctp数据(所有艺术家的表格)以及与每位艺术家相关的所有绘画。所以表中所有用户的关联数据不仅仅是一个 – eve
我的意思是你想在view.ctp页面中看到正常的index.ctp数据吗? –