个性化阅读
专注于IT技术分析

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

<?php
namespace 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');
});

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


赞(0)
未经允许不得转载:srcmini » Laravel路由组

评论 抢沙发

评论前必须登录!