我想重载一个FOSComment包的形式。我想知道我必须创建一个新的评论或者我是否可以从我的工作/主要包中创建它?
抱歉我的英文。
谢谢你, 大卫
namespace FOS\CommentBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class CommentType extends AbstractType
{
private $commentClass;
public function __construct($commentClass)
{
$this->commentClass = $commentClass;
}
/**
* Configures a Comment form.
*
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('body', 'textarea')
->add('lien', 'text', array('required' => false,
'empty_data' => null));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
parent::setDefaultOptions($resolver);
$resolver->setDefaults(array(
'data_class' => $this->commentClass,
));
}
public function getName()
{
return "fos_comment_comment";
}
}
目前我将我的现场留置权直接放在供应商档案中,我知道这不是好办法。
答案 0 :(得分:0)
我认为您需要做的就是覆盖要重载的表单的服务定义:
e.g。 (如果你有services.yml)
fos_comment.form_type.comment.default
class: Project/MyBundle/Form/CustomFormType
arguments:[%fos_comment.model.comment.class%]
tags:
- { name: form.type, alias: fos_comment_comment }