我正在尝试扩展文档中的简单博客教程。
我在/app/View/ users /index.ctp上有一个index.ctp,所有用户在每个用户名上都有一个链接。当我单击用户名时,我希望它会转到view.ctp,并显示每个用户的博客帖子和每个用户已经发布的帖子数量。
我在这里得到一个错误。我需要为此编写一个组件吗?如果是这样,我该怎么做呢?
class UsersController extends AppController {
public function view($id = null) {
$this->set('allposts',$this->Post->findByUserId($id));
}
}所以在这一点上我得到了一个错误,因为它看不到用户模型中的Post模型。我该如何解决这个问题呢?
谢谢……
发布于 2014-04-26 00:13:40
不,你不需要一个组件。如果你已经正确地链接了你的模型(就是这样,设置belongsTos和hasMany(es)等),那么你必须通过连接来访问帖子。
$this->set('allposts',$this->User->Post->findByUserId($id));有关这一点,请参阅other questions。
现在,扩展一下这一点,因为您似乎对组件的实际作用感到有点困惑。组件是向控制器扩展或添加功能的一种方式。比方说,如果你想创建一个新的分页器,或者从你的控制器调用Facebook来获取信息,并且没有明确的位置(用户可以有facebook信息,但如果你有另一个名为"Friends“的控制器,你可能也必须在那里放置一些facebook功能)。
通常,如果您认为需要一个组件才能从一个模型调用到另一个模型,这是一个错误组织的标志(不是一般规则,当这不是真的时,我会给出一些例子)。
https://stackoverflow.com/questions/23298087
复制相似问题