我正在尝试扩展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:
有什么东西我不见了吗?非常感谢任何帮助..
1 回答
你在
RouteCollection.php
文件中谈到了一个错误,但你没有在你的问题中包含它 . 此外,我会在_2743988中以不同的方式写出来,如下所示: