📅  最后修改于: 2021-01-05 10:36:27             🧑  作者: Mango
路线组是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”时,输出将是:
当我们访问URL“ localhost / laravelproject / public / second”时,输出将是:
当我们访问URL“ localhost / laravelproject / public / third”时,输出将是:
当我们要提供通用的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
/ tutorial / jira
/ tutorial / testng
我们还可以将中间件分配给组内的所有路由。可以使用中间件方法在创建组之前定义中间件。
让我们通过一个例子来理解。
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(中间件)
";
return $next($request);
}
}
输出:
name方法用于为每个路由名称添加一些指定的字符串作为前缀。在name方法中,我们需要指定在前缀中带有结尾字符的字符串。
让我们来看一个例子。
web.php
Route::name('admin.')->group(function()
{
Route::get('users', function()
{
return "admin.users";
})->name('users');
});
在上面的代码中,路由的名称为admin.users 。