Я пытаюсь расширить базовый класс Laravel 5. То, что я хочу достичь, это то, что я могу иметь собственные генераторы URL, например. URL :: test (), создаст пользовательскую ссылку.
Пока у меня есть:
Добавлен путь app / Acme / lib к карте классов composer.json
"autoload": {
"classmap": [
....
app/Acme/lib
]
}
Создан пользовательский класс UrlGenerator в Acme / lib / CustomUrlGenerator.php
<?php namespace App\Acme\lib;
use \Illuminate\Routing\UrlGenerator;
class CustomUrlGenerator extends UrlGenerator {
public function test() {
return $this->to('/test');
}
}
Создано приложение поставщика услуг / Acme / lib / CustomUrlServiceProvider.php
<?php namespace App\Acme\lib;
use \Illuminate\Routing\RoutingServiceProvider;
class CustomUrlServiceProvider extends RoutingServiceProvider {
public function boot() {
App::bind('url', function() {
return new CustomUrlGenerator(
App::make('router')->getRoutes(),
App::make('request')
);
});
parent::boot();
}
}
Зарегистрированный поставщик услуг в app / config / app.php
Теперь, когда я бегу {!! URL :: test () !!}, я получаю 404 за каждый маршрут
Sorry, the page you are looking for could not be found.
NotFoundHttpException in /vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php line 143:
Есть что-то, чего мне не хватает?
Большое спасибо за любую помощь ..
Вы говорите об ошибке в RouteCollection.php
файл, но вы не включаете его в свой вопрос. Кроме того, я бы написал по-другому в composer.json
, как это:
"autoload": {
"classmap": [
// ....
"App\\Your_Namespace\\" : "app/Acme/lib",
]
}
Других решений пока нет …