Для начала приведу пример того, чего я хочу достичь с помощью метода 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'
)
);}
Я надеюсь, что мой вопрос ясен и большое спасибо.
$options = array();
foreach($this->Category->find('all') as $key => $category) {
$options[$category['Category']['name']] = $this->Category->SubCategory->find('list')
}
$this->set('category', $options);
$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);