在 Symfony 的块渲染中找到 div
Find a div in a block render in Symfony
我正在用 symfony 4 做一个网站。我从这个框架开始,我的网站设计有问题。
我一直在寻找它可能来自哪里,但找不到我想要删除的代码。
我想删除的部分代码如下,因为结果很难看:
我在我的代码中找不到这个:
在我的控制器中:
/**
* @return Response
*/
public function newLetterAction(Request $request): Response
{
$form = $this->createForm(CustomerNewsletterType::class, new Customer());
$form->handleRequest($request);
$facebook = $this->manager->getRepository(ExternalUrl::class)->findOneByCode('facebook');
$instagram = $this->manager->getRepository(ExternalUrl::class)->findOneByCode('instagram');
return $this->templatingEngine->renderResponse('@SyliusShop/Homepage/_newsletter.html.twig', [
'facebook' => $facebook,
'instagram' => $instagram,
'form' => $form->createView(),
'rova_refonte' => (in_array($this->container->get('request_stack')->getMasterRequest()->attributes->get('_route'),["sylius_shop_homepage"]) ? true : false)
]);
}
我的表单类型:
class CustomerNewsletterType extends AbstractResourceType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email', EmailType::class, [
'label' => 'app.ui.newsletter',
'attr' => [
'placeholder' => 'app.ui.email'
]
])
;
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix(): string
{
return 'app_customer_newsletter';
}
}
在我的树枝上:
{{ render(controller('app.controller.shop_homepage:newLetterAction')) }}
如果有人能告诉我如何找到代码,那将对我有很大帮助。
谢谢
当您调用 $form->createView()
时,一切都在幕后完成。
总而言之,表单中的每种类型的字段都有一个使用树枝块的基本渲染(表单本身也是如此),它可以被覆盖。这就是所谓的形式主题,在树枝桥中有一个基础which is usually this one。
您可以创建新主题、扩展现有主题,或者创建特定表单所需的内容(提示:表单类型中的 getBlockPrefix
函数用于此目的)。
您可以在此处找到有关表单呈现的所有文档:
https://symfony.com/doc/current/form/form_customization.html
本文档中描述的大多数函数实际上都是调用表单主题的 twig 块,您可以在此处找到相关文档:
https://symfony.com/doc/current/form/form_themes.html
记住:删除这样的 class / div 可能会破坏现有的 CSS、错误渲染或 javascript 瞄准这个 class.
您很可能使用 bootstrap 3/4 form theme and there works standard form_row template layout。
要自定义当前 form/another 表单元素,请使用 "How to Work with Form Themes" tutorial。
我正在用 symfony 4 做一个网站。我从这个框架开始,我的网站设计有问题。 我一直在寻找它可能来自哪里,但找不到我想要删除的代码。
我想删除的部分代码如下,因为结果很难看:
我在我的代码中找不到这个:
在我的控制器中:
/**
* @return Response
*/
public function newLetterAction(Request $request): Response
{
$form = $this->createForm(CustomerNewsletterType::class, new Customer());
$form->handleRequest($request);
$facebook = $this->manager->getRepository(ExternalUrl::class)->findOneByCode('facebook');
$instagram = $this->manager->getRepository(ExternalUrl::class)->findOneByCode('instagram');
return $this->templatingEngine->renderResponse('@SyliusShop/Homepage/_newsletter.html.twig', [
'facebook' => $facebook,
'instagram' => $instagram,
'form' => $form->createView(),
'rova_refonte' => (in_array($this->container->get('request_stack')->getMasterRequest()->attributes->get('_route'),["sylius_shop_homepage"]) ? true : false)
]);
}
我的表单类型:
class CustomerNewsletterType extends AbstractResourceType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email', EmailType::class, [
'label' => 'app.ui.newsletter',
'attr' => [
'placeholder' => 'app.ui.email'
]
])
;
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix(): string
{
return 'app_customer_newsletter';
}
}
在我的树枝上:
{{ render(controller('app.controller.shop_homepage:newLetterAction')) }}
如果有人能告诉我如何找到代码,那将对我有很大帮助。
谢谢
当您调用 $form->createView()
时,一切都在幕后完成。
总而言之,表单中的每种类型的字段都有一个使用树枝块的基本渲染(表单本身也是如此),它可以被覆盖。这就是所谓的形式主题,在树枝桥中有一个基础which is usually this one。
您可以创建新主题、扩展现有主题,或者创建特定表单所需的内容(提示:表单类型中的 getBlockPrefix
函数用于此目的)。
您可以在此处找到有关表单呈现的所有文档:
https://symfony.com/doc/current/form/form_customization.html
本文档中描述的大多数函数实际上都是调用表单主题的 twig 块,您可以在此处找到相关文档:
https://symfony.com/doc/current/form/form_themes.html
记住:删除这样的 class / div 可能会破坏现有的 CSS、错误渲染或 javascript 瞄准这个 class.
您很可能使用 bootstrap 3/4 form theme and there works standard form_row template layout。
要自定义当前 form/another 表单元素,请使用 "How to Work with Form Themes" tutorial。