CakePHP:使用分组/嵌套选项填充选择下拉列表的简便方法?

时间:2012-12-28 22:17:48

标签: forms cakephp

假设我有大陆和国家,而且大陆有很多国家, 是否有一种简单的方法来创建这样的选择下拉列表?

$this->form->select('countries');

我正在尝试编写代码:

// in the controller
$this->set('countries', $this->Country->find('all', array('fields' ...)))

// in the view
$this->Form->select('countries')

我想将这些选择组合在一起,但是避免编写大量额外的逻辑来重新排列数据。

1 个答案:

答案 0 :(得分:4)

如果您像这样形成阵列,它将会这样做:

$countries = array(
    'North America' => array(
        123 => 'Canada'
        ...
        ...
    ),
    'South America' => array(
        345 => 'Argentina'
        ...
        ...
    ),
);

然后像普通一样使用表单助手。

$this->Form->select('countries');

注意

您无法使用find('all')进行选择。您需要使用find('list')或重新格式化find('all')

中的数据