【问题标题】:sfWidgetFormDoctrineChoice and select list valuessfWidgetFormDoctrineChoice 并选择列表值
【发布时间】:2013-01-17 14:15:43
【问题描述】:

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

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>

在小部件中这可能吗?

【问题讨论】:

    标签: php symfony1 symfony-1.4 symfony-forms


    【解决方案1】:

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

    用于显示对象键的方法(默认为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.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 2011-10-28
      • 1970-01-01
      相关资源
      最近更新 更多