CakePHP-将选择文本设置为值
我最近一直在玩CakePHP,遇到了以下问题: 在使用form helper创建视图时,我一直在执行以下操作以输出一个选择CakePHP-将选择文本设置为值,cakephp,select,Cakephp,Select,我最近一直在玩CakePHP,遇到了以下问题: 在使用form helper创建视图时,我一直在执行以下操作以输出一个选择 echo $this->Form->input('fee', array( 'empty' => '---', 'options' => array( __('Yes'), __('No')) )); 我准备好了字符串,以便为i18n做好准备,这就是为什么它们用_uu(
echo $this->Form->input('fee', array(
'empty' => '---',
'options' => array(
__('Yes'),
__('No'))
));
我准备好了字符串,以便为i18n做好准备,这就是为什么它们用_uu(“”)声明的原因
因此,它可以完美地工作,并生成以下代码:
<div class="input select">
<label for="GameFee">Fee</label>
<select name="data[Game][fee]" id="GameFee">
<option value="">---</option>
<option value="0">Yes</option>
<option value="1">No</option>
</select>
</div>
费用
---
对
不
然而,cake确实——通常——将ID作为值。如何强制cake将字段描述作为值
对
“游戏”表中的“费用”字段由varchar(100)组成
希望你能帮忙:)我不会那样做!到目前为止,cake不支持开箱即用枚举。 但是有很多方法可以解决这个问题,其中一些方法通常比最初使用枚举要好得多 在你的情况下,我想知道你为什么想要一个枚举?它显然是一个布尔值(两种状态:0或1,是或否)。所以我总是使用tinyint1存储这个布尔值 您应该以较低的成本(与整个字符串相比没有任何成本)和较低的回归错误将基本信息(0或1)存储在数据库中,并且只在输出时对其进行翻译/解释(例如,在您的视图中) 如果您确实需要两个以上的确定状态,请阅读 例如您可以通过坚持使用tinyint2字段轻松实现您的目标:
$this->Form->input('fee', array('options' => Model::fees()));
无论如何,要回答您的问题:如果确实必须在此处保存字符串,请确保它是键的一部分,或者在保存之前将其映射到控制器中
'options' => array(
__('Yes') => __('Yes'),
__('No') => __('No'))
谢谢你的回答。你是对的,我会考虑TyyIn解决方案:)。我对编程非常陌生,所以我还没有建立一个庞大的知识库,我非常感谢每一个提示。