2013-01-17 44 views
2

我有一個項目表中以下內容:sfWidgetFormDoctrineChoice並選擇列表值

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

在您的小部件配置中使用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