我是CakePHP的新手。能否请您解释一下使用数据库中的值填充选择下拉列表所需的步骤。还请建议我参考的一些链接。
答案 0 :(得分:4)
简单,如果它是控制器中的相关模型,则将“list”传递给find();一个蛋糕将成为一个id =>值数组,表单助手将确切知道如何处理它。
例如,您想要获取产品型号的类别列表,这在您的控制器中:
$categories = $this->Product->Categories->find('list');
$this->set(compact('categories'));
然后在你的视图中使用表单助手,只需创建select元素,通常会输入任何内容:
$form->input('category_id');
表单助手将自动加载我们使用$ this-> set()设置的$ categories变量。
答案 1 :(得分:3)
您在数据库中进行查找,然后通过控制器中的$this->set(yourvariable)
设置变量。
在视图中,您可以在select标记
中使用“yourvariable”答案 2 :(得分:2)
用一种非常少的努力来实现这一目标
$this->set('arrMain',$this->Post->find('list',
array(
'fields'=>array('id','title')
)));
将输出设为==>
<select id="UserAge" name="data[User][Age]">
<option value="1">The title</option>
<option value="2">A title once again</option>
<option value="3">Title strikes back</option>
答案 3 :(得分:1)
:
$this->loadModel('MyModel'); //if it's not already loaded
$options = $this->MyModel->find('all'); //or whatever conditions you want
$this->set('options',$options);
并在视图中
<select...>
<?php foreach ($options as $option): ?>
<option value="<?php echo $option['MyModel']['id']; ?>"><?php echo $option['MyModel']['field']; ?></option>
</select>
答案 4 :(得分:1)
示例强>
控制器类 中的
在您的视图文件中 阅读来源
http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html $categories = $this->Articles->find('list')->select(['id', 'title'])->toArray();
$this->set(compact('categories')); // pass result dataset to the view
<?php echo $this->Form->select('articles_categories_id', $categories); ?>