Cakephp DropDown с родителем и ребенком

Для начала приведу пример того, чего я хочу достичь с помощью метода cake-php для создания комбинированного окна, заполненного двумя таблицами категорий и подкатегорий.

-- Category1
--- Subcategory1
--- Subcategory2
--- ...
-- Category2
--- Subcategory1
--- Subcategory2
--- ...

В моем контроллере я пытался получить список категорий с их подкатегориями, используя приведенный ниже код, но это не сработало, и он просто возвращал список подкатегорий:

$this->set('category',($this->category->subcategory->find('list')));

Вот ассоциации, которые я использую между моделями:

<?php

class category extends AppModel{

public $hasMany=array(

'subcategory'=>array(
'className'=>'subcategories',

)

);

}
<?php

class subcategory extends AppModel{public $belongsTo=array(

'category'=>array(
'className'=>'categories',
'foreignKey'=> 'categories_id'
)

);}

Я надеюсь, что мой вопрос ясен и большое спасибо.

2

Решение

$options = array();
foreach($this->Category->find('all') as $key => $category) {
$options[$category['Category']['name']] = $this->Category->SubCategory->find('list')
}
$this->set('category', $options);
0

Другие решения

    $data = $this->Category->find('all', array('contain' => 'SubCategory'));
$categories = array();
foreach ($data as $key => $category) {
$categories[$category['category']['title']] = array();
foreach($category['subcategories'] as $subcategory) {
array_push($categories[$category['category']['title']], $subcategory['title']);
}
}

pr($categories);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector