周大胖子 发表于 2019-6-3 23:44:24

Laravel 路由 之 子域名、路由前缀和命名空间

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});


// 路由分组测试 利用 Route::group
// 该分组 无意义【又没共同项】
Route::group([], function () {
    Route::get('hello', function () { return 'Hello'; });
    Route::get('world', function () { return 'World'; });
});

// 路由分组测试2 【利用middleware 定义路由分组的中间件】
// 要给某个路由分组中定义的所有路由分配中间件,可以在定义分组之前使用 middleware 方法。中间件将会按照数组中定义的顺序依次执行
Route::group(['middleware' =>['auth', 'another']], function () {
    Route::get('dashboard', function () {
      return view('dashboard');
    });
    Route::get('account', function () {
      return view('account');
    });
});

// 路由中间件
// Route::group(['middleware'=>['lma']],function(){
//   Route::get('am','AmConTroller@index');
// });


// 路由路径前缀 【其实就是同一个路由 简写而已 这边搞成了路由分组】注:教程是坑人的 ,
//我个人怀疑这个 ->name 只是 路由重定向时的别名而已
Route::prefix('am')->group(function () {
    Route::get('/','AmConTroller@index', function () {
      // 处理 /api 路由
    })->name('am.index');
    Route::get('create','AmConTroller@create', function () {
      // 处理 /api/users 路由
    })->name('am.create');
});


// 子域名路由 【就是不仅仅有一个域名,还有很多二级域名】
//写法和概念 和上面 路由路径前缀差不多, 不过有参数带入,和直接写死
// 1.写死型
// Route::domain('admin.blog.test')->group(function () {
//   Route::get('/', function () {
//         // 处理 http://admin.blog.test 路由
//   });
// });

// 2.子域名参数带入型
// Route::domain('{account}.blog.test')->group(function () {
//   Route::get('/', function ($account) {
//         //
//   });
//   Route::get('user/{id}', function ($account, $id) {
//         //
//   });
// });




// 子命名空间 【不知所谓,仿佛就是 在 控制器的同级 再建造一个 文件admin 然后下面的文件重新命名命名空间】
// Route::get('/', 'Controller@index');
// 默认的命名空间是 App\Http\Controllers(在 app/Providers/RouteServiceProvider.php 中设置)

// Route::namespace('Admin')->group(function() {
//      // App\Http\Controllers\Admin\AdminController
//      Route::get('/admin', 'AdminController@index');
// });


// 路由命名前缀 【 路由命名+路径前缀 】,用处其实就是 路由前缀那个改版,把命名也提出出来
// Route::name('user.')->prefix('user')->group(function () {
//   Route::get('{id?}', function ($id = 1) {
//         // 处理 /user/{id} 路由,路由命名为 user.show
//         return route('user.show');
//   })->name('show');
//   Route::get('posts', function () {
//         // 处理 /user/posts 路由,路由命名为 user.posts
//   })->name('posts');
// });



页: [1]
查看完整版本: Laravel 路由 之 子域名、路由前缀和命名空间