CAKEPHP多模型场条件

时间:2012-08-15 15:40:45

标签: cakephp find cakephp-2.0 models

我有一个文章模型,其中包含与之关联的Tags和MenuItems。 我想显示带有某个MenuItem id的文章。

当预制件在模型上执行查找操作时,它会返回(“字段列表”中的未知列'MenuItem.id')错误。

我知道我做错了什么。

文章模型:

 public $hasAndBelongsToMany = array(
    'Tag' => array(
        'className' => 'Tag',
        'joinTable' => 'articles_tags',
        'foreignKey' => 'article_id',
        'associationForeignKey' => 'tag_id'
    ),
    'MenuItem' => array(
        'className' => 'MenuItem',
        'joinTable' => 'menu_items_articles',
        'foreignKey' => 'article_id',
        'associationForeignKey' => 'menu_item_id',
        'unique' => 'keepExisting'
    )
);

文章管理员:

 $allArticles = $this->Article->find('all',
array(
     'fields' => array('MenuItem.id','Article.id','Article.name'),
     'conditions'=>array('Article.content_type'=>'blog','MenuItem.id'=>7),
     'recursive'=>2
 )
 );

 debug($allArticles);

1 个答案:

答案 0 :(得分:1)

试试这个:

$this->Article->Behaviors->attach('Containable');

$allArticles = $this->Article->find('all', 
    array('contain' => 'MenuItem.id'),
          'fields' => array('Article.id','Article.name'),
          'conditions'=>array('Article.id'=>4),
          )
     );                           

debug($allArticles);