控制器中间件

2025年3月17日 | 阅读 3 分钟

我们也可以将中间件分配给路由文件中控制器的路由。

有多种方法可以将中间件分配给控制器

在 web.php 文件中将中间件分配给控制器。

我们可以在 web.php 文件中将中间件分配给控制器。以下是将中间件分配给所需的步骤

步骤 1: 首先,我们创建一个控制器。我们已经在之前的章节中创建了名为 PostController 的控制器。

步骤 2: 现在,我们创建要分配给 PostController 的中间件。我们使用以下命令创建中间件

上面的命令创建名为 Check 的中间件。

Laravel Controller Middleware

步骤 3: 打开在 laravelproject/app/http/Middleware 目录中创建的 Check.php 文件。

步骤 4: 现在,我们必须在 kernel.php 文件中添加中间件 Check.php 的路径。

在上面的代码中,突出显示的语句添加了中间件的路径,即 Check

步骤 5:web.php 文件中添加以下代码,将中间件分配给 PostController

上面的代码将中间件(即 check)分配给 PostController。

步骤 6: 在 Web 浏览器中输入 URL https:///laravelproject/public/posts,然后输出将是

Laravel Controller Middleware

使用控制器构造函数

我们还可以使用控制器构造函数来分配中间件。它更方便,因为它将中间件限制为控制器类上的特定方法。

以下是使用控制器构造函数分配中间件所需的步骤

  • 按照上一种情况的步骤 1 到步骤 4。
  • web.php 文件中添加以下代码
  • 打开 PostController.php 文件。
    如果我们想将中间件分配给 PostController 的 show() 方法;那么,我们需要在 PostController.php 文件中添加以下代码。

上面的代码仅将中间件分配给 show() 方法。

在 PostController 中添加上面的代码后,postController 的结构将如下所示

输出

如果我们访问 URL https:///laravelproject/public/posts,则输出将是

Laravel Controller Middleware

上面的输出显示,当我们访问 create() 方法时,中间件 Check.php 文件(中间件)不会被执行。

如果我们更改 web.php 文件的代码,并且代码是

输出

Laravel Controller Middleware

在上面的情况下,我们正在访问 PostController.php 文件的 show() 方法,因此它也在执行 Check.php 文件(中间件)。

中间件闭包

控制器还允许您使用中间件闭包注册路由。它允许应用程序为单个控制器定义中间件,而无需单独定义中间件类。

中间件闭包的语法


下一主题Laravel 视图