uzzal / legacy-router
Laravel框架5.2+的旧版路由器
v1.0.3
2018-02-16 18:35 UTC
Requires
- php: >=5.6.4
- laravel/framework: >=5.3.0
This package is auto-updated.
Last update: 2024-09-22 03:34:23 UTC
README
Laravel路由器已弃用一些功能,例如Route::controller
和Route::controllers
。如果你的代码看起来像下面的代码,那么它们可能不再被Laravel的最新版本支持。更准确地说,这些功能自Laravel 5.2以来已被弃用。
这个库恢复了那些旧版路由功能。
Route::controllers([ 'user' => 'UserController', 'asset/report' => 'Asset\AssetReportController', 'asset' => 'Asset\AssetController' ]);
或者
Route::controller('/user', 'UserController');
安装
composer require uzzal/legacy-router
配置
在你的laravel app/Http/Kernel.php
中添加/编辑你的构造函数,如下面的代码所示
<?php namespace App\Http; ... use Illuminate\Contracts\Foundation\Application; use Illuminate\Foundation\Http\Kernel as HttpKernel; use Uzzal\LegacyRouter\LegacyRouter; ... class Kernel extends HttpKernel { ... public function __construct(Application $app) { $router = new LegacyRouter($app['events'], $app); $app->singleton('router', function($app) use ($router){ return $router; }); parent::__construct($app, $router); } ... }
在你的laravel app/Console/Kernel.php
中添加/编辑你的构造函数,如下面的代码所示,确保你导入了
<?php namespace App\Console; ... use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Uzzal\LegacyRouter\LegacyRouter; use Illuminate\Contracts\Foundation\Application; ... class Kernel extends ConsoleKernel { ... public function __construct(Application $app) { $router = new LegacyRouter($app['events'], $app); $app->singleton('router', function($app) use ($router){ return $router; }); parent::__construct($app, $app['events']); } ... }
就这样。你完成了!
这是什么(wit)
如果你是那些不知道这个路由器是如何工作的少数人之一,这部分是为你准备的。想象一下,在你的app/Http/Controllers
目录中有一个控制器,如下所示
class TestController extends Controller { public function getIndex(){ return 'this is a get request'; } public function postStore(){ return 'this is a post request'; } }
然后你可以使用旧版路由器这样调用它
Route::controller('/test', 'TestController');
这会自动与你的控制器进行映射。有关更多信息,请查看这个链接 隐式控制器