Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ReflectionException:类不存在-中间件_Php_Laravel_Laravel 5.2_Middleware - Fatal编程技术网

Php ReflectionException:类不存在-中间件

Php ReflectionException:类不存在-中间件,php,laravel,laravel-5.2,middleware,Php,Laravel,Laravel 5.2,Middleware,我最近建立了一些新的中间件,作为我正在集成的权限系统的一部分 我以前安装自定义中间件时没有遇到任何问题,我相信我遵循了相同的过程,但这次我在添加新中间件的每个控制器上都会遇到以下错误: Container.php第734行中的ReflectionException: 类App\Http\App\Http\Middleware\HasPermissionPermissions不存在 我可以理解它为什么会出错,因为这条路径并不存在——但我无法理解它是从哪里得到这条路径的 这是我的中间件: <?

我最近建立了一些新的中间件,作为我正在集成的权限系统的一部分

我以前安装自定义中间件时没有遇到任何问题,我相信我遵循了相同的过程,但这次我在添加新中间件的每个控制器上都会遇到以下错误:

Container.php第734行中的ReflectionException: 类App\Http\App\Http\Middleware\HasPermissionPermissions不存在

我可以理解它为什么会出错,因为这条路径并不存在——但我无法理解它是从哪里得到这条路径的

这是我的中间件:

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class HasPermissionPermissions
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::user()->hasPermissionTo('permissions'))
        {
            return $next($request);
        }
        else
        {
            flash()->error('You are not authorised to access this route.');
            return redirect('/');
        }
    }
}
最后,我在其中设置的控制器:

class PermissionsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('hasPermissionPermissions');
        $this->middleware('email.confirmation.check');
    }
如果我删除
$this->middleware('hasPermissionPermissions')它工作得很好,但我看不出我是如何设置它的


有人知道我哪里出错了吗?

这是一个好问题,这可能是一个简单的想法,我认为您已经这样做了,但是您确定中间件确实被放在了中间件目录中吗


亲切的问候

我再肯定不过了。它肯定在那里。我使用
php-artisan-make:middleware
创建了它,以便首先将它放在正确的目录中。我不明白它是如何得到不正确的文件路径的——因为这就是我如何设置其他工作正常的中间件的。这不应该是一个评论而不是一个答案吗?是的,但我不能评论,因为我目前的声誉低于50分
composer dump autoload
会do@CerlinBoss我已经试过了,还有
composerdump autoload-o
尝试将中间件密钥从
hasPermissionPermissions
更改为
hasPermissions.permissions
,然后查看是否有效。抱歉,没有正确查看命名空间。当您放置相对命名空间时,将出现此错误
class PermissionsController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('hasPermissionPermissions');
        $this->middleware('email.confirmation.check');
    }