我正在使用 CakePHP 2.3.2 开发一个应用程序,但在表单上的输入选择方面遇到了一些问题。我正在我的控制器中创建一个数组,其中包含一个状态列表。在我的视图中,我发现当我在输入的“选项”字段中使用此变量时,我没有得到任何选择选项。如果我对变量执行 print_r,在视图中,我会看到我认为应该在“选项”字段中看到的内容。我什至尝试复制此 print_r 输出并将其放在“选项”字段中,然后输入选择工作正常。
这是我所拥有的
在控制器中
$options = 'array(1 => \'NSW\',2 => \'ACT\',3 => \'NT\');
$this->set('all_states, $options);
在视图中
<?php
$options = $all_states;
echo $this->Form->create('Refine', array('url => '/ServiceDirectoryResults/view/refine'));
echo $this->Form->input('field' ,array(
'type' => 'select',
'label' => false,
'options' => $options
));
echo $this->Form->end('Refine Search');
?>
当我运行它时,我看到一个没有选择选项的选择
如果我在 echo $this->Form->end('Refine Search'); 之后添加 print_r($options); 我懂了
array(1 => 'NSW',2 => 'ACT,3 => 'NT')
这是我所期望的,因为它是 $options 变量的内容,它是从控制器传递的 $all_states 变量。如果我从 print_r 获取此输出并在输入中将 $option 替换为它,则选择下拉菜单可以正常工作,我会看到三个选项。出于某种原因,如果我对选择选项进行硬编码,我无法确定选择是否正常工作,但如果我将包含数组的变量传递给输入选择,它将无法正常工作。
如果有人能告诉我我在这里做错了什么,我将不胜感激。
亲切的问候
理查德