У меня очень странная проблема с установкой Symfony2.Symfony2 FOS Rest bundle routing FileLoaderLoadException controller
Я работаю над спокойным web-сервисом и хотел бы настроить маршрутизацию.
У меня есть полностью работающее приложение и я хочу изменить мою конфигурацию routing.yml.
Рабочая конфигурация
my_product:
resource: My\Bundle\ProductBundle\Controller\DefaultController
type: rest
prefix: /
Когда я изменяю, что:
my_product:
resource: "@MyProductBundle/Controller/"
type: rest
prefix: /
Я получаю следующее сообщение об ошибке:
Symfony\Component\Config\Exception\FileLoaderLoadException" message="Can't find class for controller "@MyProductBundle/Controller/" in @MyProductBundle/Controller/ (which is being imported from "/home/myproduct/domains/example/v5/app/config/routing.yml"). Make sure the "MyProductBundle" bundle is correctly registered and loaded in the application kernel class. If the bundle is registered, make sure the bundle path "@MyProductBundle/Controller/" is not empty.
При изменении типа от " отдых" к «аннотации» ошибка исчезает.
Что я делаю неправильно? Я не могу это выяснить, и мои поиски ничего не ведут.
Большое спасибо заранее!
ли Вы пробовали изменения "@ MyProductBundle/Controller /", чтобы "@ MyProductBundle/Controller /" контроллера по умолчанию? Ошибка говорит о том, что класс для контроллера не найден. В любом случае, когда вы укажете 'type: rest', вы сообщаете пакету автоматически генерировать маршруты из имен действий вашего контроллера, указанных в' resource', поэтому 'resource: My \ Bundle \ ProductBundle \ Controller \ DefaultController' должен работать, и я не вижу benfits от замены двух маршрутов, о которых вы указали. \ –
Спасибо за помощь! Я думал, что не упоминать имя контроллера проще, потому что это экономит мне время, не добавляя каждый контроллер в конфигурацию маршрутизатора. Что ты думаешь по этому поводу? –
Я так не думаю, sir.'type: annotation' сообщает 'FrameworkBundle', чтобы посмотреть в ваши файлы контроллеров в папке' controller' пакета, указанного вами в 'resource', и искать маршруты, определенные как аннотации. Но 'type: rest' сообщает' FOSRestBundle' искать действия в определенном контроллере и автоматически генерировать маршруты из имен действий. Это две разные вещи, которые обрабатываются двумя разными пучками. 'FOSRestBundle' реализует этот автоматизм, но я думаю, что он еще не реализует это для всех контроллеров в папке' controller'. Надеюсь, я не ошибаюсь и жду формы экспертной информации SO –