我正在使用cakephp。并希望在下拉列表中显示数据库中的所有数据。但它只返回最后一项。循环中存在一些问题。我的代码如下。
foreach ($origions as $or);
$id = $or["origions"]["id"];
$orgn = $or["origions"]["origion"];
$options = array($id=>$orgn);
echo $this->Form->select('origions.origion', $options);
此显示仅显示下拉列表中的最后一条记录。请帮助做什么,表格中的所有数据都显示在这里。
答案 0 :(得分:2)
将其更改为,
$options = array();
foreach ($origions as $or){
$id = $or["origions"]["id"];
$orgn = $or["origions"]["origion"];
$options[$id] = $orgn;
}
echo $this->Form->select('origions.origion', $options);
已选择,
echo $this->Form->select('origions.origion', $options, array('value' => 'your_default_id'));
答案 1 :(得分:0)
其他方式(更优化的代码)......
您可以从控制器设置您的数据$this->set
。
来自控制器您可以合并 / extract / merge / sort / etc ... 多维数组,如:
$result = Set::combine($origions, '{n}.origions.id', '{n}.origions.origion');
阅读更多关于 Cakephp SET ::数组函数 http://book.cakephp.org/2.0/en/core-utility-libraries/set.html
的信息