Маршрут нестандартного пакета Laravel 5.2 не найден
Я создал пользовательский пакет, следуя документации. ( https://laravel.com/docs/5.2/packages)
Я добавил маршрут в файл пользовательских маршрутов, он появляется при проверке с помощью "php artisan route:list", но я получаю NotFoundHttpException.
Я использовал "php artisan route:clear", чтобы очистить кэш маршрутов, но проблема остается.
Если я добавлю маршрут в основное приложение, то файлы маршрутов будут работать нормально.
Поставщик услуг:
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->publishes([
__DIR__ . '/../database/migrations/' => database_path('migrations')
], 'migrations');
if (! $this->app->routesAreCached()) {
require __DIR__.'/../Http/routes.php';
}
}
Файл пользовательских маршрутов:
Route::get('foo', function () {
return 'Hello World';
});
3 ответа
Для информации, которую вы даете здесь, я не могу просто дать четкий ответ.
Если ваша структура пакета такая
PackageMainDir
- src
- Controllers
- Migrations
- Models
PackageServiceProvider.php
Routes.php
- test
- vendor
composer.json
phpunit.xml
В вашем PackageServiceProvider.php у вас будет следующий код:
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->publishes([
realpath(__DIR__.'/Migrations') => $this->getDatabasePath().'/migrations',
]);
if (! $this->app->routesAreCached()) {
require_once(__DIR__ . '/Routes.php');
}
}
Я надеюсь, что это не поздно, и в противном случае другой пользователь получит выгоду от моего ответа.
Я тоже такой же опыт для этого после некоторых исследований и решил это! пожалуйста, измените ваш код в файле поставщика услуг пакета function boot()
,
public function boot()
{
if (! $this->app->routesAreCached()) {
require __DIR__ . '/Routes.php';
}
}
После этого запустите php artisan config:cache
Код в CMD я решил эту проблему.
У меня была такая же проблема, я решил так
public function boot()
{
$path = realpath(__DIR__.'/../');
$this->loadRoutesFrom($path.'/Routes/web.php');
$this->loadViewsFrom($path.'/Resources/views/Formato','formato');
}
public function register()
{
}
Я надеюсь это может быть полезно
Решил, не знаю почему но после попытки php artisan config:cache
, изменения в config/app.php были рассмотрены, и пользовательский сервис-провайдер загрузил метод boot().