Контроллеры и маршруты Laravel в пакетах?

У меня возникли проблемы с регистрацией контроллеров для маршрутов в моем пакете.

Насколько я понимаю из официальной документации, мне просто нужно просто добавить префикс и использовать свое пространство имен, хотя я всегда получаю ошибку xyzclass not found.

Кто-нибудь может объяснить мне, как я могу сделать эту работу?

-- Vendor -- Package |-- composer.json |-- composer.lock |-- public |-- src | |-- Vendor | | -- Package | | -- PackageServiceProvider.php | |-- config | |-- controllers | | -- MyController.php | |-- lang | |-- migrations | |-- routes.php | -- views |-- tests

Я загрузил файл route.php в свой файл сервис-провайдера. Я создал и проиндексировал функцию в MyController.php и назначил ее в файле route.php.

Route::contorller('myctrl', 'Vendor\Package\MyController');

И теоретически я должен иметь доступ к mydomain.com/myctrl, и он должен вернуть мне то, что я определил в функции индекса MyController. Но на самом деле я получаю сообщение об ошибке, говорящее о том, что Class Vendor\Package\MyController не существует. Любой совет или помощь, как это должно работать или как это работает?


person peaks    schedule 30.06.2014    source источник


Ответы (2)


Думаю, я тупой, забыл некоторые мелкие детали. В следующий раз я должен использовать правильное пространство имен, и добавление папки контроллеров в мой composer.json тоже помогло.

Я нашел хорошее и подробное описание того, как это сделать здесь: https://stackoverflow.com/a/18137352/1397967

person peaks    schedule 30.06.2014

Route::contorller('myctrl', 'MyController');

Это связано с src/controllers/, а не с vendor

person Vijayaragavendran    schedule 30.06.2014
comment
попробуйте composer dump-autoload - person Vijayaragavendran; 30.06.2014
comment
Такой же. Класс ReflectionException MyController не существует - person peaks; 30.06.2014