首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >App:使用symfony 4的@Param转换器注释找不到Post对象

App:使用symfony 4的@Param转换器注释找不到Post对象
EN

Stack Overflow用户
提问于 2021-01-06 15:53:58
回答 1查看 244关注 0票数 1

我想通过id或slug发布文章,使用ParamConverter,但我发现App:Post object not found by the @ParamConverter annotation.knowing,我是symfony的初学者,我接受了一次培训。

我试过路线http://127.0.0.1:8000/blog/post/1

BlogController.php

代码语言:javascript
复制
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Request;
use App\Entity\Post;
/**
 * @Route("/blog")
*/
class BlogController extends AbstractController {

    /**
    * @Route("/post/{id}", requirements={ "id" : "\d+" }, name="get_one_post_by_id", methods={"GET"})
    * @ParamConverter("post", class="App:Post")
    */
    public function postById($post){
        return $this->json($post);
    }
    /**
    * @Route("/post/{slug}", methods={"GET"})
    * @ParamConverter("post", class="App:Post", options={"mapping": {"slug": "slug"}})
    */
    public function postBySlug($post){
        return $this->json($post);  
    }
    /**
    * @Route("/post/{id}", name="delete-post", methods={"DELETE"})
    */
    public function destroy(Post $post){
        $em = $this->getDoctrine()->getManager();
        $em->remove($post);
        $em->flush();
        return $this->json(null, 204);
    }
EN

回答 1

Stack Overflow用户

发布于 2021-01-07 19:24:52

看起来应该是:

代码语言:javascript
复制
use App\Entity\Post;

    /**
    * @Route("/post/{id}", requirements={ "id" : "\d+" }, name="get_one_post_by_id", methods={"GET"})
    */
    public function postById(Post $post){
        return $this->json($post);
    }

就这样

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

https://stackoverflow.com/questions/65599013

复制
相关文章

相似问题

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