$this->loadModel('State');
$this->set('states',$this->State->find('all'));
在视图方面
$form->select('State_id',$states);
在输出中显示表名,id和名称。
当我使用pr()打印$ states时; 我得到的是
Array
(
[0] => Array
(
[State] => Array
(
[id] => 1
[state_name] => state1
)
)
[1] => Array
(
[State] => Array
(
[id] => 2
[state_name] => state2
)
)
等等
如何从上面的数组创建一个类似数组的数组(1 => state1,2 => state2) 或者有没有其他方法来创建下拉列表框
请帮助
答案 0 :(得分:1)
以下代码将从原始数组
创建您想要的数组$newstates = array();
foreach($states as $state) {
$state = $state['State']
$newstates[$state['id']] = $state['state_name'];
}
print_r($newstates);
结果:
Array
(
[1] => state1
[2] => state2
)
答案 1 :(得分:1)
这是方式:
$fields = array('id','state_name');
$states = $this->State->find('list',array('fields'=>$fields));
$this->set(compact('states'));
或一行:
$this->set('states',$this->State->find('list',array('fields'=>array('id','state_name'))));