CakePHP показать родительскую категорию подкатегории в поле выбора - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь отобразить категорию в верхней части первого экземпляра подкатегории в поле выбора в Cake.

Подкатегория принадлежит категории и категории имеет много подкатегорий.Есть ли способ, которым мы можем сделать это?

Я уже пробовал showParents => true в поле выбора.

1 Ответ

0 голосов
/ 21 ноября 2011

Предполагая, что я правильно понимаю ваш вопрос, вы хотите использовать тег optgroup ?

Я не уверен, что существует автоматический способ сделать это, когда используется только отношение ownTo . Следующее решение немного уродливо, но делает то, что вы хотите:

Контроллер:

/**
 * Get all categories and subcategories and declare selectBox array
 */
$categories = $this->Subcategory->Category->find('all');
$selectBox = array();    

/**
 * Iterate over categories & subcategories creating a formatted 
 * array that works with Form->input() to create a select box with 'optgroups'
 */
foreach ($categories as $category) {
  foreach ($category['Subcategory'] as $subcategory) {        
    $selectBox[$category['Category']['title']][$subcategory['id']] = $subcategory['title'];        
  }
}

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

Вид:

<?php echo $this->Form->input('subcategory_id', array('options' => $selectBox)); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...