Laravel路由组

本文概述

  • 路径前缀
  • 中间件
  • 路由名称前缀
路由组是Laravel中的一项基本功能, 可让你对所有路由进行分组。当你想将属性应用于所有路由时, 路由组很有用。如果使用路由组, 则不必将属性分别应用于每个路由;这样可以避免重复。它使你可以共享诸如中间件或名称空间之类的属性, 而无需在每个单独的路由上定义这些属性。这些共享属性可以以数组格式作为第一个参数传递给Route :: group方法。
路由组的语法
Route::group( [ ] , callback);

参量
[]:它是作为第一个参数传递给group方法的数组。
路由组示例
web.php
Route::group([], function(){Route::get('/first', function() {echo "first route"; }); Route::get('/second', function() {echo "second route"; }); Route::get('/third', function() {echo "third route"; }); });

在上面的代码中, 我们定义了group()方法, 其中包含两个参数, 即数组和闭包。在闭包内部, 我们可以定义任意数量的路线。在上面的代码中, 我们定义了三个路由。
输出:
当我们访问URL“ localhost / laravelproject / public / first”时, 输出将是:
Laravel路由组

文章图片
当我们访问URL“ localhost / laravelproject / public / second”时, 输出将是:
Laravel路由组

文章图片
当我们访问URL“ localhost / laravelproject / public / third”时, 输出将是:
Laravel路由组

文章图片
路径前缀 当我们要提供通用的URL结构时, 会使用路径前缀。
我们可以使用路由组中的prefix array选项为组内定义的所有路由指定前缀。
让我们通过一个例子来理解。
web.php
Route::group(['prefix' => 'tutorial'], function(){Route::get('/aws', function() {echo "aws tutorial"; }); Route::get('/jira', function() {echo "jira tutorial"; }); Route::get('/testng', function() {echo "testng tutorial"; }); });

上面的代码包含三个路由, 可以通过以下URL访问:
/ tutorial / aws
Laravel路由组

文章图片
/教程/ jira
Laravel路由组

文章图片
/ tutorial / testng
Laravel路由组

文章图片
中间件 我们还可以将中间件分配给组内的所有路由。可以使用中间件方法在创建组之前定义中间件。
让我们通过一个例子来理解。
web.php
Route::middleware(['age'])-> group( function(){Route::get('/aws', function() {echo "aws tutorial"; }); Route::get('/jira', function() {echo "jira tutorial"; }); Route::get('/testng', function() {echo "testng tutorial"; }); });

CheckAge.php(中间件)
< ?phpnamespace App\Http\Middleware; use Closure; class CheckAge{/*** Handle an incoming request.** @param\Illuminate\Http\Request$request * @param\Closure$next* @return mixed*/ public function handle($request, Closure $next){//return "middleware"; echo "Hello srcmini < br> "; return $next($request); }}

输出:
Laravel路由组

文章图片
Laravel路由组

文章图片
Laravel路由组

文章图片
路由名称前缀 name方法用于为每个路由名称添加一些指定的字符串作为前缀。在name方法中, 我们需要指定在前缀中带有结尾字符的字符串。
让我们来看一个例子。
web.php
Route::name('admin.')-> group(function(){Route::get('users', function(){ return "admin.users"; })-> name('users'); });

【Laravel路由组】在上面的代码中, 路由的名称为admin.users。

    推荐阅读