【问题标题】:Retrieve all record with a custom condition from controller从控制器检索具有自定义条件的所有记录
【发布时间】:2014-05-16 16:11:40
【问题描述】:

我有一个简单的问题,但我被卡住了!

我有 2 个模型类,ItemTypology

  • Typology 属于 Item
  • Item 有很多 Typology

表格是这样的。

TYPOLOGY: id | item_id | title | description | published
ITEM:     id | title | price | created | published

所以我要检索的是:

  • 找到所有类型WHERE published = 1,它们所属的项目有published = 1

TypologyControllers我写了这段代码:

$typologies = $this->Typology->find(
'all', 
array(
'contain' => array(
'Item' => array(
'conditions' => array(
'Item.published =' => "1"))), 
'conditions' => array(
'Typology.published'=>'1'), 
'recursive' => -1, 
'order' => array(
'Typology.' . $this->Typology->primaryKey . ' DESC')
));


    $this->set('typologies', $typologies);  

【问题讨论】:

  • 然后会发生什么?我认为您应该将当前用于查找的第二个参数放入变量中并查看它(debug(array('contain'...)。请格式化您的问题/代码,以便于阅读

标签: cakephp cakephp-2.3


【解决方案1】:

为什么不使用连接:

$typologies = $this->Typology->find('all', array(
         'joins' => array(
            array(
                'table' => 'items',
                'alias' => 'Item',
                'type' => 'LEFT',
                'conditions' => array(
                'Item.id = Typology.item_id'
                )
            )
        ),
            'conditions' => array(
            'Item.published' => 1, 
            'Typology.published' => 1 
        ),
            'order' => array(
            'Typology.id' => 'DESC'
        ),
            'fields' => array('Item.*', 'Typology.*'),
            'recursive' => -1
        ));


    $this->set('typologies', $typologies); 

【讨论】:

  • 谢谢很多人,你是一个救生员......就像一个魅力......我得到了我想要的......
猜你喜欢
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 2015-10-13
  • 2017-05-09
  • 1970-01-01
相关资源
最近更新 更多