gpt4 book ai didi

php - 如何在自定义表单类型中生成绝对 URL?

转载 作者:可可西里 更新时间:2023-11-01 13:07:19 29 4
gpt4 key购买 nike

我有示例自定义表单类型:

namespace Acme\SimpleBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class ExampleType extends AbstractType
{

public function buildForm(FormBuilderInterface $builder, array $options)
{

$builder->setAction(****-----GENERATE-ROUTE-ABSOLUTE-URL-HERE-----****)
->add('email', 'text')
->add('send', 'submit');
}

public function getName()
{
return 'example';
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'error_bubbling' => true
));
}

}

如何为我的路线生成绝对 URL(如 http://example.com/admin/check_form)?

$this->generateUrl() 不起作用,因为它不是 Controller ,而 $this->get('router')->generate() 也不起作用,我不知道为什么。

最佳答案

有两种方法:

  • 将您的表单类型注册为服务并在其中注入(inject)路由器:doc
  • 当您在 Controller 中创建表单时,将您的操作作为选项传递:

     $form = $this->createForm(new FormType(), null, array('action' => $this->generateUrl('your_route', array(/* your route parameters */), true));

    请注意,您必须将 true 作为最后一个参数传递,以强制路由器生成绝对 url(正如您要求的 Symfony < 2.8)。如果您使用的是 Symfony3,请使用 UrlGeneratorInterface::ABSOLUTE_URL 而不是 Emilie 在评论中建议的 true。

关于php - 如何在自定义表单类型中生成绝对 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454729/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com