Laravel 路由组

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数组选项,我们可以为所有定义在该群组中的路由指定前缀。

让我们通过一个例子来理解。

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 路由组

/tutorial/ 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(中间件)

<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge

{
/**
     * Handle an incoming request.
     *

* @param
  \Illuminate\Http\Request  request

 * @param  \Closurenext
     * @return mixed
     */

   public function handle(request, Closurenext)

{

//return "middleware";
echo "Hello javaTpoint <br>";
return next(request);

}
}

输出:

Laravel 路由组

路由名前缀

name方法用于为每个路由名称添加指定的前缀字符串。在name方法中,我们需要在前缀中指定带有尾字符的字符串。

让我们看一个例子。

web.php

Route::name('admin.')->group(function()
{
   Route::get('users', function()
{
 return "admin.users";
})->name('users');
});

在上面的代码中,路由的名称将被命名为 admin.users

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程