У меня есть эта таблица в моей БД:
Group
- ID-Name
- 1 -abc
- 2 -def
- 3 -ghi
Pages
- id-group_id-name
- 1 -1 -home
- 2 -1 -about us
Теперь я хотел создать поле выбора, которое группирует их по группам, используя:
function add() {
$this->set('pages', $this->Page->find('list', array('fields' => array('Page.id', 'Page.name', 'Page.group_id'))));
}
Inmy add.ctp:
echo $form->input('group_id', array('options' => $pages));
Вывод:
<select name="data[Page][id]" id="PageId">
<optgroup label="1">
<option value="1">Home</option>
<option value="2">About Us</option>
</optgroup>
</select>
Я хотел, чтобы optgroup отображала реальное имя группы, а не идентификатор группы, например:
<select name="data[Page][id]" id="PageId">
<optgroup label="abc">
<option value="1">Home</option>
<option value="2">About Us</option>
</optgroup>
</select>
Я пробовал это:
$this->Page->find('list', array('conditions' => 'Group.id = Page.id', 'fields' => array('Page.id', 'Page.name', 'Group.name')));
Но «Group.id» и «Group.name» неизвестны.
Спасибо!