2

我有一个包含以下项目的表格:

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>

这在小部件中可能吗?

4

1 回答 1

4

key_method在您的小部件配置中使用参数。

用于显示对象键的方法(默认为 getPrimaryKey)

$this->widgetSchema['value'] = new sfWidgetFormDoctrineChoice(array(
  'model'      =>'TemplateFontSize',
  'key_method' =>'getValue',
  'add_empty'  =>'Please Select Font Size', 
  'expanded'   => false,
  'multiple'   => false
));

在这里查看更多。


更新:您还需要执行与验证器类似的操作。默认情况下,它期望 PK 作为提交的值。您需要“告诉”它应该期待另一列。类似的东西(尚未测试):

$this->validatorSchema['value'] = new sfValidatorDoctrineChoice(array(
  'model'      =>'TemplateFontSize',
  'column'     => 'value'
));

更多在这里

于 2013-01-17T15:41:35.687 回答