Cakephp处理MySQL枚举

时间:2013-04-20 09:29:59

标签: php cakephp

我在MySQL表中有一个名为“privacy”= enum(“Public”,“Private”,“Custom”)的枚举数据类型字段。我想在我的编辑视图中显示此字段,如

<?php 
    echo $this->Form->input(
              "privacy",array(
                   'label'=>'',
                   'type'=>'select'
              )
         );
  ?>

我尝试了this链接解决方案,但发现了两个主要问题。

1。)我需要将可用选项从控制器传递给视图,并需要将它们分配给视图文件中的字段。

2.)它将数组作为数字索引传递,因此表单提交视图将传递值的索引而不是它的值。因此,如果我选择隐私选项作为“自定义”,则视图将传递为2,最终不会保存在数据库中,导致其枚举,2不是有效选项。

我认为cakePHP非常聪明,可以评估提供的字段是枚举,它将从数据库中获取所有可用选项并自行处理该字段。

cakephp中是否有任何选项可以解决我的问题,还是需要将硬编码的关联数组传递给我的视图?

1 个答案:

答案 0 :(得分:1)

这里有一些代码,对于您选择性别作为枚举数据类型

非常有用 视图文件中的

<?php
                echo $form->input('gender', array(
                        'type'=>'select',
                        'options'=>array("male" => "Male", "female" => "Female")
                    )
                );

对于控制器,您只需初始化

$this->data['Profile']['gender'] = $sel_gender['Profile']['gender'];

让我知道我是否可以帮助你更多...