0

所以我刚刚在 CakePHP 中开始了一个小项目,我不确定如何最好地处理以下问题。
假设我有用户、帖子和 PostsUser。帖子用户。用户与 Posts 有一个 hasMany through 关系。
PostsUser 表示已阅读帖子的用户(它具有 userId、postId 和创建日期)。

现在,在我的帖子列表中,我希望能够单击一个链接以将帖子标记为已读,并在 PostsController 中使用“markRead”方法。

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

其次,这甚至是正确的做事方式吗?有一个 posts/markRead/14 url​​ 看起来不错,但我愿意改变它。

4

1 回答 1

1

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

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

或使用Controller::loadModel()

如果只是关于链接的命名,您还可以使用 PostsUsersController::markAsRead() 并使用路由器将 /posts/markAsRead/:id 路由到 PostsUsersController。

于 2012-06-06T18:55:42.617 回答