cakephp - 如何将多个模型 ID 传递到 CakePHP 中的注释添加操作?

标签 cakephp model controller

我的问题涉及如何将一个评论 Controller 与多个“属于” Controller 一起使用。

我想向新闻、帖子和比赛添加评论(这是一个网球网站)。我已经设置了评论添加操作以使用“ajax”助手,并且还使用 counterCache 来跟踪每条新闻、帖子和比赛的评论数量。

我不知道的是如何将唯一 ID(新闻、帖子、匹配)传递到评论 Controller 添加操作中,以便表单保存评论和 news_id、post_id 或 match_id, 以表单中传递的为准。

我的想法是,表单是否设置为收集唯一 ID,以便传递的内容特定于该 Controller (新闻、帖子、比赛)。结果是添加操作添加评论以及新闻/帖子/匹配 ID 值。

否则我必须设置一个 post_comments、news_comments 和 match_comments Controller 来处理每个 Controller ,而这不会是 DRY我所追求的方法。

我仍在积累对 CakePHP 的知识和理解。我怎样才能实现我设定的目标?

最佳答案

您的评论数据库表应如下所示:

id | belongs_to | foreign_id | ....
-------------------------------------
   |            |            |

belongs_toenumvarchar

然后在你的模型中你可以像这样关联评论模型 在评论模型中:

var $belongsTo = array(
  'News' => array(
    'className' => 'News',
    'foreignKey' => 'foreign_id',
    'conditions' => array('Comment.belongs_to'=>'News'),
    'fields' => '',
    'order' => ''
  ),
  'Post' => array(
    'className' => 'Post',
    'foreignKey' => 'foreign_id',
    'conditions' => array('Comment.belongs_to'=>'Post'),
    'fields' => '',
    'order' => ''
  )
);

在后模型中:

var $hasMany = array(
  'Comment' => array(
    'className' => 'Comment',
    'foreignKey' => 'foreign_id',
    'dependent' => true,
    'conditions' => array('Comment.belongs_to' => 'Post'),
    'fields' => '',
    'order' => 'Comment.created DESC',
    'limit' => '',
    'offset' => '',
    'exclusive' => '',
    'finderQuery' => '',
    'counterQuery' => ''
  )
);

关于cakephp - 如何将多个模型 ID 传递到 CakePHP 中的注释添加操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275594/

相关文章:

cakephp - 如何更新模型的多行?

rest - 在 CakePHP 中使用带有 RESTful 路由的路由前缀

wpf - 在Wpf MVVM中使用非贫血症域模型

ruby-on-rails - Rails 中公共(public)目录中的文件 - Errno::ENOENT (没有这样的文件或目录@ rb_sysopen

php - cakephp mysql 按查询分组

javascript - 我怎样才能停止 AJAX 调用保持 PHP session 事件

qt - Qt 中模型的任意索引作为 View 的根索引?

python - 在 QTreeView 中使用自定义角色而不是 DisplayRole

java - 我想获取一年中的所有星期以及从当前日期开始的java中每周的开始和结束工作日日期?

c++ - google protobuf 编译器不为服务标签生成类?