首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >切换模板取决于路由注释

切换模板取决于路由注释
EN

Stack Overflow用户
提问于 2014-05-22 13:00:25
回答 1查看 159关注 0票数 3

我在主计长中有以下方法:

代码语言:javascript
运行
复制
/**
 * @Route("/add", name="item_add")
 * @Route("/edit/{id}", name="item_edit")
 * @Template
 */
public function editAction(Request $request, Item $item = null)

由于操作名,此方法加载edit.html.twig模板。

如果add.html.twig路由匹配,可以强制使用item_add模板吗?如果item_edit匹配,可以强制使用edit.html.twig吗?

EN

Stack Overflow用户

回答已采纳

发布于 2014-05-22 14:55:29

由jperovic提供的答案似乎是正确的,然而,IMHO,使用路线名称感觉不正确。

可以轻松地避免依赖路由名称。

下面是一个例子

代码语言:javascript
运行
复制
/**
 * @Route("/add", name="item_add")
 * @Method({"GET"})
 * @Template
 */
public function addAction(Request $request, Item $item = null)
{
    if (null === $item) {
        $item = new Item;
    }

    $form = $this->createForm(new ItemType, $item, [
        'action' => $this->generateUrl('item_update'), // In your view?
        'method' => 'POST'
    ]);

    return [
        'form' => $form->createView()
    ];
}

/**
 * @Route("/edit/{id}", name="item_edit")
 * @Method({"GET"})
 * @Template
 */
public function editAction(Request $request, Item $item)
{
    return $this->addAction($request, $item);
}

这样,您将有两个路由执行几乎相同的操作,并发送相同的参数。

代码语言:javascript
运行
复制
/edit/{id} => edit.html.twig
/add       => add.html.twig
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23807564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档