Symfony 3+:如何学习使用FOSRestBundle?

时间:2018-12-14 21:27:31

标签: symfony fosrestbundle symfony-3.4

我正在尝试使用Symfony 3.4创建REST API,但是在学习如何使用此捆绑软件时发现了一些困难。

因此,当我尝试查看一些教程时,由于捆绑软件的版本转移,我会出错,因此我发现自己尝试进行任何配置复制和粘贴,直到它起作用为止,我感到非常难看。

我正在尝试使用JSON获取影片

烦躁的我的问题,我得到了这个错误:

There are no registered paths for namespace App
Twig_Error_Loader

我通过将其添加到config.yaml中来解决

fos_rest:
    view:
        view_response_listener: force

但是经过一阵子没有做任何更改之后,出现了一个新错误:

An instance of Symfony\Bundle\FrameworkBundle\Templating\EngineInterface must be injected in FOS\RestBundle\View\ViewHandler to render templates.

MoviesController.php:

<?php

namespace AppBundle\Controller;

use FOS\RestBundle\Controller\ControllerTrait;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
// use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use FOS\RestBundle\Controller\Annotations as Rest;
use AppBundle\Entity\Movie;

class MoviesController extends AbstractController
{
  use ControllerTrait;

  /**
   * @Rest\View(populateDefaultVars=false)
   */
  public function getMoviesAction(){
    $movies = $this->getDoctrine()
        ->getRepository(Movie::class)
        ->findAll();

        // print_r($movies); die;
    return $movies;
  }

}

当我们看到文档时,我问我如何理解这些内容:

https://symfony.com/doc/master/bundles/FOSRestBundle/configuration-reference.html

因此,今天的“我的问题”是一个基本问题:如何学习在Symfony中使用特定捆绑软件并像专业人士一样工作?捆绑概念设计师的问题是由于他的文档不佳还是在我身上?

1 个答案:

答案 0 :(得分:1)

自Symfony 4(包括Symfony 3.4,因为它是同一件事)以来,您应该使用API​​平台而不是FOSRestBundle

composer require api

不到两分钟,您的API就准备好了。 只需添加

use ApiPlatform\Core\Annotation\ApiResource;供您使用和

@ORM\Entity到您的Entity注释和Goo !!!

更多信息: