是否可以使用bindModel绑定CakePHP中的3个不同的嵌套表

时间:2010-05-13 16:00:57

标签: cakephp

我有一个段可以有很多注释,每个注释可以有很多标签。我可以使用下面的代码将注释绑定到段,这是段模型类中的一个函数。

function prepareForGettingSegmentsWithComments() {
  $this->bindModel(
   array('hasMany' => array(
     'Comment' => array(
      'className' => 'Comment',
      'foreignKey'    => 'segmentID'

     )
    )
   )
  ); 
 }

但是我如何在标签中绑定?

1 个答案:

答案 0 :(得分:0)

是的,在这种情况下,我使用belongsTo将标签绑定到评论。然后使用一些查询条件过滤结果。

让我看看我是否可以在某个地方找到一个示例代码段,

if(isset($this->params['named']['category'])){
  $this->Link->bindModel(
    array('belongsTo' => array(
          'CategoriesLink' => array(
              'className' => 'CategoriesLink',
              'foreignKey' => 'id',
          )
      )),
    array('belongsTo' => array(
          'Category' => array(
              'className' => 'Category',
              'foreignKey' => 'categories_link_id',
          )
      ))
  );

  $data = $this->paginate('Link', array('CategoriesLink.category_id'=>$this->params['named']['category']));
} else {
  $data = $this->paginate('Link', array('Link.status_id'=>'1'));
}

$this->set('links', $data);

当我尝试通过相关字段对Link模型进行分页时,我就是这样做的。这与Cake1.2有关,但我认为原理是一样的。

我还建议安装DebugKit,http://www.ohloh.net/p/cakephp-debugkit,然后修改链接和条件,直到得到适合您的查询。

对不起,不是非常技术性;)我相信有人可以给你一个更准确的答案。

PS,刚刚重读了这个问题,您是否已经将这些模型链接起来了?当然通过CakePHP关系将它们挂钩到模型中,您不需要绑定模型,只需使用ContainableunbindModel()

相关问题