首页 文章

Laravel 5扩展核心类

提问于
浏览
5

我正在尝试扩展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 回答

  • 0

    你在 RouteCollection.php 文件中谈到了一个错误,但你没有在你的问题中包含它 . 此外,我会在_2743988中以不同的方式写出来,如下所示:

    "autoload": {
    "classmap": [
            // ....
            "App\\Your_Namespace\\" : "app/Acme/lib",
        ]
    }
    

相关问题