Как отображать только категории с продуктами с древовидным поведением CakePHP? - PullRequest
1 голос
/ 05 июля 2011

Я использую поведение дерева 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
        )
    ));

Это будет отправной точкой для сброса ненужных размеров массива.В базе данных категории hasMany products.

Что может быть лучшим решением этой проблемы?Можно ли избежать Product-> find в цикле foreach с помощью category_id?

1 Ответ

1 голос
/ 05 июля 2011

Не проверено

$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)
                                     )
                         )
        ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...