2010-02-28 39 views
1

假設數據庫中有image_url列。如何在symfony中動態填充選擇小部件?

我希望用戶從推薦幾款圖像選擇,這是這樣的:

<input type="radio" value="domain.com/path_to_img1" name="image_url" /> 
<img src="domain.com/path_to_img1" /> 
<input type="radio" value="domain.com/path_to_img2" name="image_url" /> 
<img src="domain.com/path_to_img2" /> 

凡圖片網址實時生成。

如何通過sfForm在symfony風格中做到這一點?

我嘗試這樣做:

$form->widgetSchema['key'] = new sfWidgetFormSelect(...) 

卻得到了一個致命的錯誤:

Cannot access protected property

但是,什麼是做到這一點的具體方法是什麼?

回答

2

那麼,標準的做法是編寫一個小部件。

在你的具體案例中,似乎你確實想要做出選擇,對吧?所以你必須實現另一個sfWidgetFormChoice渲染器。要做到這一點,請繼承sfWidgetFormSelectRadio(我們稱之爲sfWidgetFormSelectRadioImage),以便學習如何將標籤呈現爲<img>標籤。然後明確詢問sfWidgetFormChoice以使用sfWidgetFormSelectRadioImage類來表現自己,而這應該是全部。

+0

你可以用一個例子? – user198729 2010-02-28 15:14:54

+0

不,現在我不能。提示:深入並重寫'sfWidgetFormSelectRadio :: render()'。 – develop7 2010-02-28 17:27:54

+0

Thanks.But我無法找到代碼來**動態**填充選項。 – user198729 2010-02-28 17:58:46

0

在你的表單配置插入如下:

$this->widgetSchema['choices'] = new sfWidgetFormChoice (array('choices' => $custom_values_array)); 
+1

您不能將$ custom_values_array的構建背後的邏輯從動作移動到表單中嗎? – 2010-03-01 08:37:39

相關問題