Php Symfony 3表单:如何设置textarea小部件的默认值
我想在textarea小部件上设置值。 如何在Symfony 3中设置textarea的默认值 对于TextType(input type=“text”)我可以使用value参数,但是对于textarea我不能!!!如何设置textarea的默认值 这是我的表格Php Symfony 3表单:如何设置textarea小部件的默认值,php,symfony,twig,symfony-3.1,Php,Symfony,Twig,Symfony 3.1,我想在textarea小部件上设置值。 如何在Symfony 3中设置textarea的默认值 对于TextType(input type=“text”)我可以使用value参数,但是对于textarea我不能!!!如何设置textarea的默认值 这是我的表格 public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add(
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('linkdin', TextType::class, array('attr' => array('placeholder' =>
'linkdin','class' => 'form-control width100','value' =>
MainPageType::$content1[0]['linkdin'])))
->add('addres', CKEditorType::class, array('attr' => array('required' =>
'false','name'=>'editor1' ,'id' => 'editor1','class' => 'ckeditor','empty_data'
=> MainPageType::$content1[0]['addres'])))
.
.
假设您使用的是Symfony 3.4,则有相当多的问题需要解决 长话短说,您应该使用
数据
:
$builder->add('token', TextareaType::class, array(
'data' => 'abcdef',
));
正如文件所说:
渲染时,“数据”选项始终覆盖从域数据(对象)获取的值。这意味着当表单编辑已持久化的对象时,对象值也会被覆盖,从而在提交表单时丢失其持久化值
您可以像这样将带有数据的变量传输到控制器中的formType
$form = $this->createForm(Form::class,$YourData);
如果在保存新记录和编辑现有记录时使用表单,则可能会发现“数据”选项(Alex的解决方案)受到限制,因为在编辑现有记录时,字段会被默认数据覆盖 解决方案之一是在控制器的new()操作中手动设置默认数据,但仅在GET调用中设置,而不是在POST中设置
$form = $this->createForm(MyType::class, $dto);
$form->handleRequest($request);
if($form->isSubmitted()) {
if($form->isValid()) {
// Save data
}
} else {
// Set default value
$form->get('date')->setData(
new\DateTime(’now’)
);
}
在
$YourData
中,您应该传输希望在表单中显示的对象。在将对象值传输到表单之前编辑对象值被认为是糟糕的编程。