我有兩個表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數據嗎? –