2011-10-09 62 views
-1

以下鏈接用於Favors列表中!它鏈接到用戶所在的地方,但是正在被使用在喜好列表中。因此,喜歡變量。鏈接上的CakePHP關係

我有三個模型用戶,地方和Favors。用戶有很多好處和一個地方,一個好處屬於一個用戶。

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

回答

0

請務必包含地點的青睞獲取數據時。

+0

?我不知道這是什麼意思:( – Cameron

+0

http://book.cakephp.org/view/1323/Containable – Ivo

+0

我仍然很困惑:/你可能會發布一些代碼的答案或許嗎?謝謝 – Cameron

0

這是應該看起來像你的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

您是否閱讀過這個問題?:)問題在於他們在Favour和地點之間沒有直接關係。一個地方連接到一個用戶和一個用戶連接一個忙,所以當我顯示一個優惠列表時,我只能做它和用戶之間的關係,而不是拉取地方信息! – Cameron

+0

@Cameron我已經更新了我的問題。我誤解了你的看法。 –

+0

謝謝,但我沒有列出地方;)我只是顯示用戶的位置,所以它讀取每個喜歡像'卡梅倫在哈德斯菲爾德在2011年10月9日問了一個喜歡',所以卡梅倫是喜歡的作者和哈德斯菲爾德是與該作者鏈接的地方。 – Cameron