我在MySQL表中有一个名为“privacy”= enum(“Public”,“Private”,“Custom”)的枚举数据类型字段。我想在我的编辑视图中显示此字段,如
<?php
echo $this->Form->input(
"privacy",array(
'label'=>'',
'type'=>'select'
)
);
?>
我尝试了this链接解决方案,但发现了两个主要问题。
1。)我需要将可用选项从控制器传递给视图,并需要将它们分配给视图文件中的字段。
2.)它将数组作为数字索引传递,因此表单提交视图将传递值的索引而不是它的值。因此,如果我选择隐私选项作为“自定义”,则视图将传递为2,最终不会保存在数据库中,导致其枚举,2不是有效选项。
我认为cakePHP非常聪明,可以评估提供的字段是枚举,它将从数据库中获取所有可用选项并自行处理该字段。
cakephp中是否有任何选项可以解决我的问题,还是需要将硬编码的关联数组传递给我的视图?
答案 0 :(得分:1)
这里有一些代码,对于您选择性别作为枚举数据类型
非常有用 视图文件中的
<?php
echo $form->input('gender', array(
'type'=>'select',
'options'=>array("male" => "Male", "female" => "Female")
)
);
对于控制器,您只需初始化
$this->data['Profile']['gender'] = $sel_gender['Profile']['gender'];
让我知道我是否可以帮助你更多...