cakephp从DB得到所有下拉选项


cakephp get all dropdown options from DB

我在不同的表中有一个下拉和下拉选项。这很好,但现在我希望能够检索与下拉代码的所有选项。在这个页面上,我有所有的下拉菜单和项目。假设下拉代码为dropdown1

我希望我能做

$this->Form->input('dropdownitem_id', array('options' => $dropdown['dropdown1']));

有没有办法在没有帮助的情况下做到这一点?

在控制器中

$dropdownitems = $this->OtherModel->find('list');
$this->set(compact('dropdownitems'));

在你的视图

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

选择选项将自动填充。

但是我不明白,你说的帮手是什么意思

1)你为什么要"不借助助手"来做这件事?

2)是的,使用正常的PHP东西-即foreach()循环,将HTML内容返回到页面

只需查看helper生成的内容,并使用PHP模拟它。

<select name="whatever">
    <?php
    foreach($items as $item) {
        echo '<option value=" . $item['id'] . '">' . $item['name'] . '</option>';
    }
    ?>
</select>

(类似的东西——我很快就写出来了,但你应该明白)

你应该使用可包含的行为。

http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html

然后查询顶层元素。

在你这样做之后。

你必须像Dave说的那样运行foreach循环并格式化选项。

如果您需要容器方面的帮助,请告诉我,它们是您的救命恩人和朋友!

我创建了一个自定义帮助器来获得我想要的确切行为。