我有一个包含以下项目的表格:
id | value
1 | 12
2 | 14
3 | 16
我正在使用sfWidgetFormDoctrineChoice
小部件,其中包含以下内容:
$this->widgetSchema['value'] = new sfWidgetFormDoctrineChoice(array(
'model'=>'TemplateFontSize',
'add_empty'=>'Please Select Font Size',
'expanded' => false, 'multiple' => false
));
这将在HTML中输出以下内容
<select>
<option value="1">12</option>
<option value="2">14</option>
<option value="3">12</option>
</select>
理想情况下,我希望value=""
值为值,即
<select>
<option value="12">12</option>
<option value="14">14</option>
<option value="16">12</option>
</select>
小部件可以实现吗?
答案 0 :(得分:4)
在窗口小部件配置中使用key_method
param。
用于显示对象键的方法(默认为getPrimaryKey)
$this->widgetSchema['value'] = new sfWidgetFormDoctrineChoice(array(
'model' =>'TemplateFontSize',
'key_method' =>'getValue',
'add_empty' =>'Please Select Font Size',
'expanded' => false,
'multiple' => false
));
查看更多here。
更新:你还需要做类似验证器的事情。默认情况下,它期望PK作为提交值。你需要“告诉”它应该期待另一个列。像(尚未测试)的东西:
$this->validatorSchema['value'] = new sfValidatorDoctrineChoice(array(
'model' =>'TemplateFontSize',
'column' => 'value'
));
更多here。