加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:40:59 所属栏目:PHP教程 来源:网络整理
导读:我有示例自定义表单类型: namespace AcmeSimpleBundleFormType;use SymfonyComponentFormAbstractType;use SymfonyComponentFormFormBuilderInterface;use SymfonyComponentOptionsResolverOptionsResolverInterface;class ExampleType extends
我有示例自定义表单类型:
namespace AcmeSimpleBundleFormType;

use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolverInterface;

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()不起作用,但是它不是控制器,而且$this-> get(‘router’) – > generate()也不起作用,我不知道为什么.

有两种方法可以做到:

>将表单类型注册为服务并将路由器注入其中:doc
>在控制器中创建表单时,将操作作为选项传递:

$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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读