【发布时间】:2015-12-03 20:07:24
【问题描述】:
我正在尝试扩展 Laravel 5 核心类。我想要实现的是我可以拥有自定义 url 生成器,例如。 URL::test(),会生成自定义链接。
到目前为止我有:
- 已创建 app/Acme/lib 文件夹
-
为 composer.json 类映射添加了 app/Acme/lib 路径
"autoload": { "classmap": [ .... app/Acme/lib ] } -
在 Acme/lib/CustomUrlGenerator.php 中创建自定义 UrlGenerator 类
<?php namespace App\Acme\lib; use \Illuminate\Routing\UrlGenerator; class CustomUrlGenerator extends UrlGenerator { public function test() { return $this->to('/test'); } } -
创建服务提供者app/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
- 运行 composer dump-autoload
现在当我运行 {!! 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:
我有什么遗漏吗? 非常感谢您的帮助..
【问题讨论】: