在cakephp中以选择的形式显示所有数据

时间:2014-03-18 06:18:45

标签: php cakephp

我正在使用cakephp。并希望在下拉列表中显示数据库中的所有数据。但它只返回最后一项。循环中存在一些问题。我的代码如下。

foreach ($origions as $or);
$id = $or["origions"]["id"];
$orgn = $or["origions"]["origion"];
$options = array($id=>$orgn);
echo $this->Form->select('origions.origion', $options);

此显示仅显示下拉列表中的最后一条记录。请帮助做什么,表格中的所有数据都显示在这里。

2 个答案:

答案 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'));

Reference

答案 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

的信息