php - Laravel 5.3 中间件类不存在

标签 php laravel-5 laravel-middleware

我想基于中间件进行一些身份验证..但不幸的是它返回因为类不存在

这是我的中间件

员工.php

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class Staff
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $user = Auth::user()->type;
        if ($user == 'S'){
            return $next($request);
        }

        return "no";
    }
}

这是kernel.php

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];

    protected $middleware = [
        \App\http\Middleware\Staff::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')
        //          ->hourly();
    }

    /**
     * Register the Closure based commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        require base_path('routes/console.php');
    }
}

我已经尝试过 composer dump-autoload 但它没有效果。

这是我的路线:

Route::get('/staff', 'StaffController@index')->middleware('Staff');

最佳答案

如果您想将中间件应用于 Http 调用,您应该在 app/Http/Kernel.php 中注册它们。但是,您的中间件已在 App\Console\Kernel 中注册用于控制台命令。 参见 more on Laravel documentation

关于php - Laravel 5.3 中间件类不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39304881/

相关文章:

javascript - 如何在php中获取ajax下拉列表的值?

laravel-5 - Yajra 数据表 addColumn

laravel - 如何防止Laravel路由被直接访问(即非ajax请求)

laravel - Request 类中的授权方法可以返回 HandlesAuthorization 特征的自定义消息吗?

laravel - 自定义 Blade 指令不起作用 - 语法错误,意外 ')'

php - Laravel 5 本地化 : exclude/public/directory

php - jquery、php 和 html 代码中的问题

php - mysqli 和 php 创建一个不存在的表

php - Log.php 从 MySQL 数据库返回 'Invalid User'

php - 共享主机上的 Laravel 5 - 错误的 public_path()