2012-03-05 32 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中输入了它(:

相关问题