Я начал учиться Symfony 1 год go, и теперь я пытаюсь закодировать RESTFul API с помощью FosRestBundle
Сначала я начал с
/**
* Lists all Movies.
* @Rest\Get("/movies")
*
* @return Response
*/
public function getMovieListAction()
{
$repository = $this->getDoctrine()->getRepository(Movie::class);
$movies = $repository->findall();
return $this->handleView($this->view($movies));
return $view;
}
/**
* show a Movies.
* @Rest\Get("/movie/{id}")
*
* @return Response
*/
public function getMovieAction(Movie $movie)
{
$view = View::create();
$view->setData($movie);
return $view;
}
Эта функция работала хорошо. Поэтому я пытаюсь go глубже с Просмотреть ответ слушателя
И вот тут начинаются проблемы. Я пытаюсь
/**
* show a Movie.
* @Rest\Get("/movie/detail/{id}")
*
* @Rest\View()
*/
public function getMovieDetailAction(Movie $movie)
{
return $movie;
}
И все, что я получаю, это Предупреждение: ReflectionObject :: __ construct () ожидает, что параметром 1 будет объект, нулевое значение
Трассировка исключения стека
ErrorException:
Warning: ReflectionObject::__construct() expects parameter 1 to be object, null given
at vendor/friendsofsymfony/rest-bundle/EventListener/ViewResponseListener.php:168
at FOS\RestBundle\EventListener\ViewResponseListener->getDefaultVars(object(View), null, null)
(vendor/friendsofsymfony/rest-bundle/EventListener/ViewResponseListener.php:107)
at FOS\RestBundle\EventListener\ViewResponseListener->onKernelView(object(ViewEvent), 'kernel.view', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/Debug/WrappedListener.php:126)
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ViewEvent), 'kernel.view', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/EventDispatcher.php:264)
at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(object(WrappedListener)), 'kernel.view', object(ViewEvent))
(vendor/symfony/event-dispatcher/EventDispatcher.php:239)
at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener)), 'kernel.view', object(ViewEvent))
(vendor/symfony/event-dispatcher/EventDispatcher.php:73)
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ViewEvent), 'kernel.view')
(vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:168)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ViewEvent), 'kernel.view')
(vendor/symfony/http-kernel/HttpKernel.php:163)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:80)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:201)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(public/index.php:25)
Я получаю от Google мало результатов и ничего на Symfony 4
- Symfony 4.4.99
- FOSRestBundle 2.7
- JMSSerializerBundle 3.5
# Read the documentation: https://symfony.com/doc/master/bundles/FOSRestBundle/index.html
fos_rest:
routing_loader:
default_format: json
include_format: false
body_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: json, prefer_extension: false }
param_fetcher_listener: true
access_denied_listener:
json: true
view:
view_response_listener: 'force'
formats:
json: true
Спасибо за ответы и советы