如何在CakePHP下拉菜单中显示数组数据?

时间:2014-02-22 15:39:34

标签: arrays cakephp drop-down-menu

<!-- language: lang-none -->

Array
(
[0] => Array
    (
        [Doctor] => Array
            (
                [id] => 1
                [doctor_name] =>  Dr. Kazi Hasinur Rahman
            )

    )

[1] => Array
    (
        [Doctor] => Array
            (
                [id] => 2
                [doctor_name] => Dr.M. Zahid Hasan
            )

    )

[2] => Array
    (
        [Doctor] => Array
            (
                [id] => 3
                [doctor_name] => Dr.M.A.Malek
            )

    )
)

这是我的一系列医生。我希望将doctor_name显示为下拉列表,并在表单提交时使用id进行查询。

在我的医生模型中:

 public $displayField = 'doctor_name';

我的观点是:

<?php echo $this->Form->input('doctor_name', array('options' => $doctors)));?>

2 个答案:

答案 0 :(得分:1)

如果您想在下拉菜单中使用模型中的数据,那么您需要find('list')。在你的Controller中添加:

$this->set('doctorNames', $this->Doctor->find('list'));

因为您已经在模型中设置了displayField,所以它会将其作为标签获取,而id将是值。就像它应该的那样。此外,如果您遵循命名约定并将变量名称设置为$doctorNames,则不再需要将options部分添加到View中,您只需使用:

$this->Form->input('doctor_name');

它会产生一个包含所有医生姓名的下拉列表。

答案 1 :(得分:1)

获取医生数组时,请使用$this-> Doctor-> find ('list')

这将返回一个键值数组。