2012-03-05 30 views
0

我目前有一個users表和一個posts表。我的帖子表有一個user_id的字段,但是,我不確定我將如何獲取users表中的用戶name字段。我正在考慮使用模型afterFind()方法,然後使用SQL來選擇數據,但必須有比這更好的方法。另外,在我的視圖操作中,我使用read()函數來獲取單個帖子。運行read()後,afterFind()會啓動嗎?如果沒有,是否有相當於afterRead()在CakePHP中,有沒有更好的方法來選擇用戶名?

回答

2

只需創建一個Post belongsToTo用戶的關聯關係,並且具有足夠高值的每個常規查找/讀取操作都將自動爲每個帖子提取用戶。

$post = $this->Post->find(...); 
echo $post['User']['name']; 
+1

這太性感了! – Strawberry 2012-03-05 11:49:21

+0

我會使用echo h($ post ['User'] ['name'])' - 出於安全原因!總是逃避你的輸出。 – mark 2012-03-05 12:27:45

+0

有趣的是,我從來沒有聽說過輸出轉義。我只聽說過輸入轉義,但我想這是有道理的。但是,如果我對輸入有嚴格的限制,那麼我不需要爲了輸出而逃跑? – Strawberry 2012-03-05 19:37:41

0

你必須要象下面這樣:

$this->Cake->findById(7); Cake.id = 7 

在這裏,您可以在使用USER_ID,而不是像7 ..

Find BY CAKE PHP

0
$this->Post->bindModel(array('belongsTo'=>'User')); 
$post = $this->Post->findById($post_id); 
$userName = $post['User']['name']; 

這裏是錯誤,我在eclipse中輸入了它(:

相關問題