1

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

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

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

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

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

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

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

4

1 回答 1

1

这是一些对您选择性别作为枚举数据类型非常有用的代码

在视图文件中

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

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

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

让我知道我是否可以为您提供更多帮助...

于 2013-04-20T09:49:33.867 回答