我正在使用CakePHP的树行为,需要知道是否有类别或子类别中的任何产品,因为我不想查看空类别。
我想做这样的事情:
$cat = $this->Category->find('first',array('conditions'=>array('id'=>$id)));
$test = $this->Category->find('threaded', array(
'conditions' => array(
'Category.lft >=' => $cat['Category']['lft'],
'Category.rght <=' => $cat['Category']['rght'],
'Product.InStock >'=>0 //NOT WORKING
)
));
这将是取消设置不需要的数组维度的起点。在数据库中,类别包含许多产品。
这个问题的最佳解决方案是什么?是否可以使用category_id避免Product-&gt;在foreach循环中查找?
答案 0 :(得分:1)
未测试
$this->Category->Behaviors->attach->('Containable');
$cat = $this->Category->find('first',array('conditions'=>array('id'=>$id)));
$test = $this->Category->find('threaded', array(
'conditions' => array(
'Category.lft >=' => $cat['Category']['lft'],
'Category.rght <=' => $cat['Category']['rght']),
// use containable behaviour and apply the condition
'contain'=>array('Product'=>array('conditions'=>
array('Product.InStock >'=> 0)
)
)
));