一.路由命名
Route::get('task', 'TaskController@index')
->name('task.index');
route('task.index');
PS:URL 是 URI 的子集,更多区别请百度;
- route()助手的第二参数为参数,第三参数为是否包含域名 URL;
// http://localhost:8000/task?id=10
route('task.index', ['id'=>10]);
// /task?id=10
$url = route('task.index', ['id'=>10], false);
PS:如果需要更改成/task/10 模式,路由需要相应更改 task/{id}
return redirect()->route('task.index', ['id'=>10]);
二.路由分组
//一个空的分组路由
Route::group([], function () {
Route::get('index/{id}', function ($id) {
return 'index'.$id;
});
Route::get('task/{id}', function ($id) {
return 'task'.$id;
});
});
路由分组第一种写法:
路由分组第二种写法:(推荐)
- 可以将中间件作用域路由分组中,有两种写法,至于中间件?后续章节讲解;
//引入中间件,方法一
Route::group(['middleware'=>'中间名'], function () {});
//引入中间件,方法二
Route::middleware(['中间件'])->group(function () {});
Route::group(['prefix'=>'api'],function () {});
//引入路由前缀,方法二
Route::prefix('api')->group(function () {});
- 可以设置子域名,从而限定路由可执行的域名,有两种方法,具体如下:
//引入子域名,方法一
Route::group(['domain'=>'127.0.0.1'], function () {});
//引入子域名,方法二
Route::domain('127.0.0.1')->group(function () {});
5. 可以设置命名空间,让命名空间分配给控制器,让其得以访问,具体如下:
//命名空间,方法一
Route::group(['namespace'=>'Admin'],function () {});
//命名空间,方法二
Route::namespace('Admin')->group(function () {});
PS:在 Controller 目录下创建 Admin 目录,再其目录下创建的控制器命名空间如下: namespace App\Http\Controllers\Admin;
Route::group(['as'=>'task.'], function () {
Route::get('task', 'TaskController@index')->name('index');
Route::get('task/url', 'TaskController@url'); });
//名称前缀,方式二
Route::name('task.')->group( function () {});
//生成 URL
$url = route('task.index');
return $url;
//嵌套方式命名前缀
Route::name('task.')->group(function () {
Route::name('abc.')->group(function () {
Route::get('task', 'TaskController@index')->name('index');
});
Route::get('task/url', 'TaskController@url');
});
//生成 URL
$url = route('task.abc.index');
return $url;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。