【问题标题】:what middleware can what controller in Laravel cannot do?Laravel 中的控制器不能做什么中间件?
【发布时间】:2020-11-19 13:34:38
【问题描述】:

在学习 Laravel 时,我遇到了一个叫做中间件的概念。我想知道为什么我们首先需要中间件?我们也可以在控制器中实现相同的逻辑,那么,有中间件有什么意义呢?什么是我们不能在控制器中做的,我们需要中间件?

【问题讨论】:

    标签: laravel controller middleware


    【解决方案1】:

    如果你有多个控制器并且你想在那时应用相同的条件,而不是在多个文件(控制器)中编写相同的代码。在一个文件(中间件)中编写代码并应用于所有控制器。

    Route::middleware('checkRole')->group(function() {
        Route::get('user', 'UserController@index')
        Route::get('order', 'OrderController@index')
        Route::get('customers', 'CustomerController@index')
    
    });
    

    【讨论】:

    • 那么 laravel 中的中间件解决了什么问题?假设我们要对用户进行身份验证。我们不能在运行我们的函数之前使用我们的控制器对用户进行身份验证吗?
    • 问:那么 laravel 中的中间件解决了什么问题? A:代码冗余。问:我们不能在运行我们的函数之前使用我们的控制器对用户进行身份验证吗?答:是的,我们在 Controller 中这样做。但是如果有 20 个不同的控制器,我们只需要检查用户身份验证(或任何条件),我们需要在 20 个不同的文件中编写相同的代码,我们只编写一个名为 Middleware 的文件并在 20 个控制器上应用相同的代码:P
    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 2023-03-18
    • 2016-07-02
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    相关资源
    最近更新 更多