symfony easyadmin 自定义表单生成器 [英] symfony easyadmin custom form builder
本文介绍了symfony easyadmin 自定义表单生成器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 symfony 3.4 和 easycorp/easyadmin-bundle 1.17
I use symfony 3.4 and easycorp/easyadmin-bundle 1.17
配置表单easyadmin :
Config form easyadmin :
form:
fields:
- { type: 'group', label: 'Basic Information', icon: 'envelope-o', css_class: 'col-sm-8' }
- { property: 'title' }
- { property: 'status' }
- { type: 'group', label: 'Legal Information', icon: 'briefcase', css_class: 'col-sm-4' }
- { property: 'pdfFile', type: 'file' }
在 AdminController 中:
In AdminController :
/**
* @param $entity
* @param $view
* @return \Symfony\Component\Form\FormBuilder
*/
protected function createQuotationEntityFormBuilder($entity, $view)
{
$formBuilder = parent::createEntityFormBuilder($entity, $view);
$formBuilder->add('customer', EntityType::class, array(
'class' => 'AppBundle:Person',
'label' => false,
'by_reference' => false,
'query_builder' => function(EntityRepository $er) {
$user = $this->get('security.token_storage')->getToken()->getUser();
$query = $er->createQueryBuilder('person')
->leftJoin('person.userCreated', 'user')
->andWhere('person.type = :type')
->setParameter('type', 2) // à changer c'est en dur!
;
if (in_array("ROLE_ADMIN", $user->getRoles())) {
$query->andWhere('user.company = :company');
$query->setParameter('company', $user->getCompany());
} else {
$query->andWhere('user.id = :user');
$query->setParameter('user', $user->getId());
}
return $query;
},
'multiple' => false,
'expanded' => false,
'attr' => ['data-widget' => 'select2'],
'placeholder' => 'label.form.empty_value'
)
);
return $formBuilder;
}
在我的表单构建器中,我想添加一个字段客户",但它出现在最后,表单的呈现效果不佳(参见图片),有人会有想法,以便我可以插入该字段客户"字段状态"后
In my form builder I want to add a field "customer" but it appears at the end, the rendering of the form is not good (cf. image), someone would have an idea so that I can insert the field "customer" after the field "status"
提前致谢
推荐答案
手动渲染:
{{ form_start(form) }}
{{ form_row(form.title) }}
{{ form_row(form.status) }}
{{ form_row(form.client) }}
...
{{ form_end(form) }}
PS:您在 easyadmin 配置文件中添加的组选项将被忽略.
PS: the group option that you've added in the easyadmin config file will be ignored.
这篇关于symfony easyadmin 自定义表单生成器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文