在一些特殊需求下, 我们需要在表单中加入拾色器来选择颜色, symfony官方提供了相关的插件, dbFormExtraPlugin.
dbFormExtraPlugin包含了一些扩展的widget, 不过显然很少有更新, 截至到此文发布的时候, 其中只提供了一个拾色器和一个日期选择器.
dbFormExtraPlugin插件的sfWidgetFormColorPickerJQuery是日期选择器, dbFormExtraPlugin基于Jquery, 所以如果想正确使用插件功能需要同时安装 sfJqueryReloadedPlugin插件.
安装好sfJqueryReloadedPlugin和 dbFormExtraPlugin之后在要使用picker的form中定义
$this->setWidget('color', new sfWidgetFormColorPickerJQuery());
$this->setValidator('color', new sfValidatorColorHex());
由于symfony的版本差异, 在1.2下sfWidgetFormColorPickerJQuery返回的css数组格式有错误, 造成color picker无法正常显示
要修改源码
public function getStylesheets()
{
return array('/dbFormExtraPlugin/farbtastic/farbtastic.css' => 'screen');
}
最终效果图如下:

