Symfony2:在单独的文件中创建没有实体的表单
Symfony2 :Create form without entity within separate file
我想在 seaparte 文件中创建一个新表单(不在控制器中)。
这是使用实体创建表单的示例:
<?php
// src/OC/PlatformBundle/Form/AdvertType.php
namespace OC\PlatformBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class AdvertType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('date', 'date')
->add('title', 'text')
->add('author', 'text')
->add('content', 'textarea')
->add('published', 'checkbox', array('required' => false))
->add('save', 'submit')
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'OC\PlatformBundle\Entity\Advert'
));
}
public function getName()
{
return 'oc_platformbundle_advert';
}
}
我现在想修改它并创建一个没有实体的新表单 class。
那么,我能做什么?
删除 setDefaultOptions() 方法中的 data_class 赋值,并使用这种没有实体的形式。
我想在 seaparte 文件中创建一个新表单(不在控制器中)。
这是使用实体创建表单的示例:
<?php
// src/OC/PlatformBundle/Form/AdvertType.php
namespace OC\PlatformBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class AdvertType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('date', 'date')
->add('title', 'text')
->add('author', 'text')
->add('content', 'textarea')
->add('published', 'checkbox', array('required' => false))
->add('save', 'submit')
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'OC\PlatformBundle\Entity\Advert'
));
}
public function getName()
{
return 'oc_platformbundle_advert';
}
}
我现在想修改它并创建一个没有实体的新表单 class。
那么,我能做什么?
删除 setDefaultOptions() 方法中的 data_class 赋值,并使用这种没有实体的形式。