私の目的は、関連する子モデル(削除された後)のレコードをビューに表示することです。再帰値を「1」に設定すると、現在のモデル、その所有者、および関連するモデルが返されることを理解しています。
方法がわからないのは、これをビューに表示することです。
私のアプローチは、関連付けられたモデルIDの値を保持する変数をコントローラーに作成することでしたが、それは機能しませんでした。
*トーナメントにスラッガブルな振る舞いを使用していることにも言及する必要があります。そのため、使用されるのは$ idではなく、$slugです。
モデルビューコントローラーの詳細は次のとおりです。
モデル
トーナメント-多くのトーナメントがあります詳細
tournamentDetails-多くの更新があります
更新-tournamentDetailsに属しています
トーナメントコントローラーアクション=表示
class TournamentsController extends AppController
function view($slug = null) {
if (!$slug) {
$this->Session->setFlash(__('Invalid Tournament.', true));
$this->redirect(array('action'=>'index'));
}
$this->Tournament->recursive = 1;
$tournament = $this->Tournament->findBySlug($slug);
$updates = $this->Tournament->TournamentDetail->Update->find('all', array('conditions'=>array('update.tournament_detail_id' => $this->data['tournament_details'] ['id'] )) );
$this->set(compact('tournament','updates' ));
トーナメントビュー。これは、「トーナメントの詳細」および(理想的には)関連するトーナメントの詳細「更新」を表示します。
<h2><?php echo $tournament['Tournament']['name']; ?></h2>
<?php foreach ($tournament['TournamentDetail'] as $tournamentDetail): ?>
<h1><?php echo $tournamentDetail ['title']; ?></h1>
<p><?php echo $tournamentDetail ['body']; ?></p>
<?php endforeach; ?>
<?php foreach ($updates['Update'] as $update): ?>
<h4>Update: <?php echo $update ['date']; ?></h4>
<p> <?php echo $update ['Update'] ['title']; ?></p>
<p><?php echo $update ['Update'] ['body']; ?></p>
<?php endforeach; ?>
$ updateをデバッグすると、これがすべて表示されます。
Array
(
)
ここで何が間違っているのかわかりません。
以下を使用して検索条件を作成するのは正しくありませんか?
('conditions'=>array('update.tournament_detail_id' => $this->data['tournament_details'] ['id'] )
助けてくれてありがとう。ポール