Моя цель - отобразить записи для дочерней дочерней модели (после удаления) в представлении. Моя проблема в том, что я получаю сообщение об ошибке «Уведомление (8): Неопределенный индекс:», когда я пытаюсь вывести следующий запрос.cakephp: как визуализировать связанные модели в представлении
Турниры имеют много турнировДетали и турнирыДетали имеют много обновлений. Я пытаюсь отобразить все обновления для каждого турнира, который отображается на экране турниров.
Так что мой вопрос заключается в том, как правильно разрешить сообщение об ошибке и отображать обновления для каждого турнираДетали на странице просмотра турниров.
Моя находка данных в представлении контроллер действия «Турниры» является:
$updates = $this->Tournament->TournamentDetail->Update->find('all', array('tournament_details.tournament_id'=> $this->data['Tournament']['id']));
В представлении, у меня есть этот код.
<?php foreach ($tournament['Update'] as $update): ?>
<h3>Updates</h3>
<h1><?php echo $update ['title']; ?></h1>
<p><?php echo $update ['body']; ?></p>
<hr/>
<?php endforeach; ?>
Это тот же код «foreach», который я использую для других связанных дочерних записей без проблем. Я использовал функцию debug() для исследования, но не понял, чего я не вижу.
Вывод массива $ обновления от функции отладки выглядит следующим образом:
Array
(
[0] => Array
(
[Update] => 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
)
Есть специальный способ отображения записей в этом глубокие?
Как всегда, заранее. Пол
Обновление: февраль 23/11 После некоторого тестирования проблемы, я, кажется, нахожу и передавая правильное значение переменных $ обновления;
Подводя итог, я хочу, чтобы переменная $ updates сохраняла текущий 'tournament_details_id'. Затем будут отображаться соответствующие записи обновлений в представлении «турниры».
Я все еще новичок и, скорее всего, не замечал очевидного.
Вот информация модель:
class Tournament extends AppModel {
var $name = 'Tournament';
var $hasMany = array(
'TournamentDetail' => array(
'className' => 'TournamentDetail',
'foreignKey' => 'tournament_id',)
class TournamentDetail extends AppModel {
var $name = 'TournamentDetail';
var $belongsTo = array(
'Tournament' => array(
'className' => 'Tournament',
'foreignKey' => 'tournament_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
class Update extends AppModel {
var $name = 'Update';
var $belongsTo = array(
'TournamentDetails' => array(
'className' => 'TournamentDetails',
'foreignKey' => 'tournament_detail_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
Контроллер данных:
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('tournament_details_id' => $this->data['TournamentDetails']['id'])));
$this->set(compact('tournament','updates', $updates));
Tournament вид. Это отображение «Информация о турнире» и (в идеале), связанные с турнира подробности «обновления»
<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; ?>
Я проверил это, добавив в «ид» ПОДРОБНО.Подробнее Турнирные как целое, и это тянет правильный «обновление 'запись. Однако у меня, похоже, проблемы с настройкой операции поиска, чтобы сделать то же самое.
Как всегда, я ценю помощь.
Благодаря Пол
Там в nothi ng special о выводах * связанных записей, но может быть сложно найти их. Однако ответить на эту информацию невозможно. Как связаны ваши модели, какие из них вы хотите найти, какие данные вы точно получаете и чего не хватает? – deceze
Можете ли вы вставить данные из массива '$ updates'? – Stoosh
После некоторого тестирования проблема, с которой я, похоже, передаю правильное значение операции «Найти». Может ли кто-нибудь исправить меня с добавленной информацией в вопросе. – Paul