链接上的CakePHP关系


CakePHP Relation on link

以下链接用于偏好列表!它链接到用户来自的地方,但在偏好列表中使用,因此使用偏好变量。

我有三个模型用户,地点和偏好。一个用户有很多好处,一个好处属于一个用户。

<?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);
    }
}

确保在为favor获取数据时包含Place

在你的favors_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');