我正在尝试为Symfony 2.3中的文本字段定义默认值。该表单用于创建和更新实体。在编辑模式下,应使用数据库给出的值,而不是默认值(当然)。
修改 这似乎是一个常见问题,很多人都看过这篇文章How to set default value for form field in Symfony2?
然而答案并不令人满意(对我来说):
所以我仍在寻找“完美”的方式,即Symfony开发者提供的方式(必须有一个,这是一个基本要求)。
这是我到目前为止所做的,但它不起作用(表格中没有显示默认值)。 这是正确的做法吗?
// Acme\DemoBundle\Form\ProjectType.php
class ProjectType extends AbstractType
{
public function __construct(array $options = array())
{
$resolver = new OptionsResolver();
$this->setDefaultOptions($resolver);
$this->options = $resolver->resolve($options);
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('color', 'text', array(
"label" => "Color:"
)
);
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
"color" => "#0000FF"
));
}
}