laravel 路由
余温
2019年02月11日 15时32分
php
laravel生命周期
//基本样式
Route::get('/', function () { return view('welcome'); });
所有的路由方式
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);
响应多种请求的方式
//响应post和get请求 Route::match(['get', 'post'], 'foo', function () { return 'This is a request from get or post'; }); //响应所有请求 Route::any('bar', function () { return 'This is a request from any HTTP verb'; });
路由参数
Route::get('user/{name}', function ($name = null) { return $name; });
可选参数
//可选参数 Route::get('user/{name?}', function ($name = null) { return $name; }); Route::get('user/{name?}', function ($name = 'John') { return $name; });
正则约束
//正则约束 Route::get('user/{name}', function ($name) { // $name 必须是字母且不能为空 })->where('name', '[A-Za-z]+'); Route::get('user/{id}', function ($id) { // $id 必须是数字 })->where('id', '[0-9]+'); Route::get('user/{id}/{name}', function ($id, $name) { // 同时指定 id 和 name 的数据格式 })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
全局约束
如果想要路由参数在全局范围内被给定正则表达式约束,可以使用 pattern
方法。需要在 RouteServiceProvider
类的 boot
方法中定义这种约束模式:
/** * 定义路由模型绑定,模式过滤器等 * * @param \Illuminate\Routing\Router $router * @return void * @translator http://laravelacademy.org */ public function boot() { Route::pattern('id', '[0-9]+'); parent::boot(); }
路由中间件 middleware
方法
Route::prefix('admin')->namespace('Admin')->middleware('token')->group(function () {}
//嵌套路由
Route::prefix('test')->namespace('facky')->middleware('token')->group(function () { Route::get('user', 'HomeController@index'); Route::group(['prefix' => 'article'], function () { Route::get('list', 'ArticleController@List'); } }
请登陆后评论
{{vo.time}} 回复