CakePHP保存模型在另一个控制器中

时间:2012-06-06 16:13:26

标签: cakephp

所以我刚刚在CakePHP开了一个小项目,我不确定如何最好地应对以下事项。
说我有用户,帖子和帖子用户。 PostsUser。用户与帖子有很多关系 PostsUser表示已阅读帖子的用户(具有userId,postId和创建日期)。

现在在我的帖子列表中,我希望能够点击一个链接,将帖子标记为PostsController中的“markRead”方法。

现在最后一个问题,我如何在PostController中保存一个新的PostsUser,我已经阅读了有关添加$ uses和添加PostsUser的内容,但这似乎不起作用。

其次这是正确的做事方式吗?有一个帖子/ markRead / 14网址似乎不错,但我愿意改变它。

1 个答案:

答案 0 :(得分:1)

使用Controller :: use被认为是不好的做法。应通过关联访问相关模型。

在PostsController :: markAsRead()方法中,您可以使用ClassRegistry :: init('PostsUser')来获取模型的实例并从该对象调用方法。

或使用Controller::loadModel()

如果它只是链接的命名,你也可以使用PostsUsersController :: markAsRead()和use the router将post / posts / markAsRead /:id路由到PostsUsersController。