首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成slug时出现错误Twig,缺少参数("slug")以生成URL

生成slug时出现错误Twig,缺少参数("slug")以生成URL
EN

Stack Overflow用户
提问于 2018-04-26 20:59:39
回答 2查看 297关注 0票数 0

我想呈现我的Twig产品页面和它的url-slug。我的控制器:

代码语言:javascript
复制
* @Route("/item/{id}", name="app_showitem_getid", requirements={"id": "\d+"})
* @param int $id
* @return Response
* @throws \Doctrine\ORM\NonUniqueResultException
public function getid(int $id):Response

{
    $repository = $this->getDoctrine()->getRepository(Item::class);
    $item = $repository->findBy($id);

    return $this->render("item/prodpage.html.twig", ["items"=>$item]);
}

代码语言:javascript
复制
* @Route("/item/{slug}", name="app_showslug_getslug")
* @return Response
* @throws \Doctrine\ORM\NonUniqueResultException
public function getslug(string $slug)

{
    $em = $this->getDoctrine()->getManager();

    $repository = $em->getRepository(Item::class);

    $itemSlug = $repository->findBy(["slug"=>$slug]);

    $this->generateUrl('app_showslug_getslug', [array("slug"=> array($itemSlug))],UrlGeneratorInterface::ABSOLUTE_URL);
}

文件routes.yaml:

代码语言:javascript
复制
app_item_getid:
    path:/item/{id}
    controller: App\Controller\ShowitemController::getid
    requirements:
        id:'\d+'

我的template.html.twig文档:

代码语言:javascript
复制
{% for item in items%}
    -->This link target the product-page:
      "{{ path('app_showitem_getid', {'id': item.id}) }}"
{% endfor%}

我如何生成一个通过id和它的插件来定位商品的产品页面的template.twig?我不能正确地呈现产品页面,因为它抛出“参数缺失”错误,但它的插件在那里,在url中!遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2018-04-26 21:16:46

我想在这里:

代码语言:javascript
复制
public function getid(int $id):Response
{
    ***********************************
    $item = $repository->find($id);
    ***********************************
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-26 21:57:04

如果getid($id)是控制器操作,它看起来来自上面的@Route注释,那么您可以让框架自动从数据库中获取item实体,如果它是唯一的。

代码语言:javascript
复制
public function getIdAction(Item $id)
{
    var_dump($id);  // $id instanceof Item::class
    // with $id->getId() or $id->id (if public), etc.
}

如果id或$slug是唯一的,您还可以使用-findOneBy(...)来获取单个条目,而不是只包含1个条目的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50043641

复制
相关文章

相似问题

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