脚本宝典收集整理的这篇文章主要介绍了php – 如何在symfony2中解析非控制器类中的路径,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。@H_512_0@ 我有一个表单生成器类,它继承自AbstractTyPE,我需要解决这样的路径:
$uri = $router->generate('blog_show',array('slug' => 'my-bLOG-post'));
由于该类不是Controller的子级,因此无法访问路由器.有任何想法吗?
在建设时间将路由器传递给班级怎么样?
<?PHP namespace Vendor\Bundle\AppBundle\Form\Type; use Symfony\component\Form\AbstractType; use Symfony\Bundle\FrameworkBundle\Routing\Router; class PostType extends AbstractType { /** * @VAR Router */ PRivate $router; /** * @param Router */ public function __construct(Router $router) { $this->router = $router; } /** * @return string */ public function getName() { return 'post'; } // ... }
将其注册为服务:
services: form.type.post: class: Vendor\Bundle\AppBundle\Form\Type\PostType arguments: [ @router ] tags: - { name: form.type }
并在你的控制器中使用它像这样:
public function addAction(Request $request) { $post = new Post(); $form = $this->createForm('post',$post); // ... }
由于您使用form.type标记将表单类型注册为服务,因此您只需使用其名称而不是新的PostType().您可以在您的类型中以$this->路由器的形式访问路由器服务.
以上是脚本宝典为你收集整理的php – 如何在symfony2中解析非控制器类中的路径全部内容,希望文章能够帮你解决php – 如何在symfony2中解析非控制器类中的路径所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。