CakePHP Отношение по ссылке - PullRequest
       5

CakePHP Отношение по ссылке

0 голосов
/ 09 октября 2011

Следующая ссылка используется в списке сувениров! Он ссылается на место, откуда пользователь, но используется в списке предпочтений. Следовательно, переменная предпочтения.

У меня есть три модели: пользователи, места и услуги. У пользователя есть много привилегий, и одно место, привилегия принадлежит пользователю.

<?php foreach($favours as $favour): ?>

<p><?php echo $this->Html->link($favour['User']['firstname'] . ' ' . $favour['User']['lastname'], array('controller'=>'users','action'=>'view','userName'=>$favour['User']['username'])); ?> in <?php echo $this->Html->link($favour['Place']['name'], array('controller'=>'places','action'=>'view',$favour['Place']['id'])); ?> asked a favour <?php echo $favour['Favour']['datetime']; ?></p>

<h3><?php echo $this->Html->link($favour['Favour']['title'], array('controller'=>'favours','action'=>'view',$favour['Favour']['id'])); ?></h3>

Как отобразить ссылку, так как в данный момент я получаю сообщение о том, что Место не определено.

Это действие контроллера для этого списка:

function index()
{
    $favours = $this->paginate();

    if (isset($this->params['requested']))
    {
        return $favours;
    }
    else
    {
        $this->set('favours', $favours);
    }
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2011

Вот так должно выглядеть в вашем favours_controller:

function index(){
    $favours = $this->Favour->find('all');
    $places = $this->Favour->Place->find('all');
    $this->paginate();
    $this->set(compact('users', 'places');
}

Вот так должно выглядеть в вашем index.ctp:

<?php foreach($favours as $favour): ?>
<?php echo $this->Html->link($favour['Favour']['username'], array('controller'=>'users','action'=>'view', $favour['Favour']['username'])); ?>
<?php endforeach; ?>
<?php foreach($places as $place): ?>
<?php echo $this->Html->link($place['Place']['place'], array('controller'=>'places','action'=>'view', $place['Place']['place'])); ?>
<?php endforeach; ?>

Вам также может понадобитьсяопределить переменную uses:

var $uses = array('Place');
0 голосов
/ 09 октября 2011

Убедитесь, что вы указали Place при получении данных для Favor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...