0
我有一個CakePHP應用程序,允許用戶與其他用戶成爲朋友。這是通過用戶表上的用戶表在用戶表上使用HABTM關係完成的。使用來自CakePHP的數據hasAndBelongsToMany關係
friends表具有:id,user_id,friend_id和status字段。
而對於關係模型的樣子:
public $hasAndBelongsToMany = array(
'User'=>array(
'className' => 'User',
'joinTable' => 'friends',
'with' => 'Friend',
'foreignKey' => 'user_id',
'associationForeignKey' => 'friend_id'
)
);
因此,舉例來說,如果我想列出的朋友登錄的用戶,我有以下幾點:
$user = $this->User->find('first', array('conditions' => array('User.id' => $this->Auth->user('id'))));
$friends = $this->User->find('first',
array(
'conditions'=>array(
'User.id'=>$user['User']['id']
),
'contain'=>array(
'User'=>array(
'conditions'=>array(
'Friend.status'=>1
)
)
)
)
);
$this->set('friends', $friends);
現在我的問題是當試圖展示這個列表,獲取朋友信息!
如果我做$朋友,我得到一個調試:
array(
'User' => array(
'password' => '*****',
'id' => '6',
'username' => 'test',
'email' => '[email protected]',
'firstname' => 'Test',
'lastname' => 'User',
(int) 0 => array(
'password' => '*****',
'id' => '8',
'username' => 'johndoe',
'email' => '[email protected]',
'firstname' => 'John',
'lastname' => 'Doe',
'Friend' => array(
'id' => '1',
'user_id' => '6',
'friend_id' => '8',
'created' => '0000-00-00 00:00:00',
'status' => '1'
)
)
)
)
如何顯示的朋友則列表?正如我做:
<?php foreach ($friends as $friend) : ?>
<li><?php echo $this->Html->link($friend['User']['firstname']. ' '. $friend['User']['lastname'], array('controller'=>'users','action'=>'view','userName'=>$friend['User']['username'])); ?></li>
<?php endforeach; ?>
但我只是得到:Undefined index: User [APP/View/Friends/index.ctp, line 44]
任何的想法是什麼,我做錯了什麼?我假設這是在視圖中沒有正確使用數組的問題。
怎麼樣的看法?我仍然得到相同的錯誤! – Cameron
您需要遍歷'$ friends ['Friend']'數組。使用'debug()'來檢查。 –
你能告訴我一個如何在視圖中列出這些數據的例子嗎? – Cameron