Php 如何在symfony2中解析非控制器类中的路径
我有一个表单生成器类,它继承自Php 如何在symfony2中解析非控制器类中的路径,php,symfony,twig,Php,Symfony,Twig,我有一个表单生成器类,它继承自AbstractType,我需要解析如下路径: $uri = $router->generate('blog_show', array('slug' => 'my-blog-post')); public function addAction(Request $request) { $post = new Post(); $form = $this->createForm('post', $post); // ... }
AbstractType
,我需要解析如下路径:
$uri = $router->generate('blog_show', array('slug' => 'my-blog-post'));
public function addAction(Request $request)
{
$post = new Post();
$form = $this->createForm('post', $post);
// ...
}
由于该类不是Controller
的子类,因此我无法访问路由器。有什么想法吗
在构建时将路由器传递给类怎么样?您可以将此类定义为服务,并将路由器服务注入其中
更多信息:。您可以通过构造函数将
路由器
服务传递给您的表单类型。使用表单将您的表单注册为服务。键入标记并将路由器服务注入其中
如果要在某个控制器中使用form builder类,则可以更简单、更灵活地使用form builder:
public function someAction() {
//...
$task = new Task();
$form = $this->createForm(new TaskType(), $task, array(
'action' => $this->generateUrl('target_route'),
'method' => 'GET',
));
}
不需要在表单类型类中设置URL。
请在此处阅读更多信息:
能否为参数:[@router]
指定php模板版本代码?请参阅中的php选项卡。
public function someAction() {
//...
$task = new Task();
$form = $this->createForm(new TaskType(), $task, array(
'action' => $this->generateUrl('target_route'),
'method' => 'GET',
));
}