関連するレコードをビュー アクションにプルするためにコンテナブルを使用していますが、結果をループするときにエラー メッセージが表示されます。
また、「sluggable」動作を使用しているため、検索操作にはこの変数で検索する条件があります。
ビューで検索変数をデバッグすると、正しいレコードが表示されます。しかし、ビューでそれらをループしようとすると、「通知 (8): 未定義のインデックス: エラー」が表示されます。理想的には、このエラーは時々発生するため、このエラーのトラブルシューティング方法を理解するのが好きでした.
モデルのセットアップは次のとおりです。
大会はたくさんあります 大会詳細
トーナメントの詳細には多くの更新があります
表示しようとしているレコードは次のとおりです。
トーナメント -> トーナメントの詳細 -> アップデート
トーナメント コントローラは次のようになります。
$tournament = $this->Tournament->find('first', array(
'conditions' => array( 'slug' => $slug),
'contain' => array(
'TournamentDetail' => array(
'Update' => array('order' => 'Update.id DESC'),
))));
トーナメント ビュー アクションは次のようになります。
<?php foreach ($tournament ['Update'] as $update): ?>
<h3>Update: <?php echo $update ['Update']['date']; ?></h3>
<h4><?php echo $update['Update']['title']; ?></h4>
<p><?php echo $update ['Update']['body']; ?></p>
<hr/>
<?php endforeach; ?>
デバッグ時のビューの「更新」データは次のようになります。
[Update] => Array
(
[0] => Array
(
[id] => 2
[title] => Indoor Challenge
[date] => 2010-03-19
[body] => Congratulations 2010 Champion
[tournament_detail_id] => 4
[homeStatus] => no
)
[1] => Array
(
[id] => 1
[title] => first round matches start today
[date] => 2010-03-19
[body] => this tournament's first round matches start today.
[tournament_detail_id] => 4
[homeStatus] => no
)
「更新」をループするときに見落としていることが本当に明らかなことはありますか?
ありがとう、ポール
解像度
ご意見ありがとうございます。数歩戻った後、「未定義のインデックス」とループ方法に関するコメントで何が起こっていたのかがわかりました。
問題は、foreach ループがネストされておらず、関連付けの最初のレベルでのみループしていたことです。forearch ループは、多くの「tournamentDetails」を持つ「トーナメント」を処理します。
ループは、多くの「更新」がある「tournamentDetails」まで 1 レベル深くする必要がありました。
ビューでこれを解決したコードを次に示します。
<?php foreach ($tournament['TournamentDetail'] as $tournamentDetail): ?>
<?php foreach ($tournamentDetail ['Update'] as $update): ?>
<h3>Update: <?php echo $update['date']; ?></h3>
<h4><?php echo $update['title']; ?></h4>
<p><?php echo $update['body']; ?></p>
<hr/>
<?php endforeach; ?>
<?php endforeach; ?>
他の人が複数レベルの関連付けで包含可能な動作を使用する方法を理解しようとしている場合は、目的の結果を表示するには、ビューで foreach ループをネストする必要がある場合があることを覚えておいてください。
乾杯、ポール