Почему этот API ресурсов Sylius запрашивает шаблоны? - PullRequest
1 голос
/ 09 мая 2019

Я пытаюсь создать ресурс Sylius. Я создал сущность Doctrine с именем App\Entity\Thing

./src/Repository/ThingRepository.php
./src/Entity/Thing.php

и для Sylius docs , я добавил следующее в мою конфигурацию маршрута

app_thing:
   resource: |
       alias: app.thing
   type: sylius.resource_api

и следующие настройки моего приложения

sylius_resource:
    resources:
        app.thing:
            classes:
                model: App\Entity\Thing

Согласно документации Sylius, мне следует обратиться за извлечением "вещи" через API с помощью вызова curl, подобного этому

curl -i -X GET -H "Accept: application/json" http://localhost:8000/things/1 

Однако, когда я пытаюсь это сделать, я получаю следующую ошибку

Unable to find template "/show.html.twig" (looked into: /path/to/acme/vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views, /path/to/acme/templates, /path/to/acme/templates, /path/to/acme/vendor/symfony/twig-bridge/Resources/views/Form).    

Похоже, ошибка связана с тем, что там присутствуют определенные шаблоны веток - чего я не понимаю, поскольку это должен быть JSON Api. Я предполагаю, что я делаю что-то не так, но я не знаю, что.

Кто-нибудь знает, что я делаю неправильно, или у вас есть совет, как я могу отладить это дальше?

Вот вывод для команды sylius:debug:resource. Я использую стандартную версию Sylius.

$ php bin/console sylius:debug:resource app.thing
+--------------------+------------------------------------------------------------+
| name               | thing                                                      |
| application        | app                                                        |
| driver             | doctrine/orm                                               |
| classes.model      | App\Entity\Thing                                           |
| classes.controller | Sylius\Bundle\ResourceBundle\Controller\ResourceController |
| classes.factory    | Sylius\Component\Resource\Factory\Factory                  |
| classes.form       | Sylius\Bundle\ResourceBundle\Form\Type\DefaultResourceType |
+--------------------+------------------------------------------------------------+

1 Ответ

2 голосов
/ 09 мая 2019

Я думаю, что-то не хватает в документации.Для API-маршрутов требуется префикс ^ / api.Одним из решений может быть добавление пути к вашей конфигурации маршрутизации:

  app_thing:
    resource: |
      alias: app.thing
      path: /api/things
    type: sylius.resource_api
...