class 在中间件方法中找不到名称 - Laravel 5

class name not found in middleware method - Laravel 5

我正在尝试设置中间件。 我遵循了这些说明:

http://mattstauffer.co/blog/laravel-5.0-middleware-filter-style

我的密码是

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\RedirectResponse;

class LoadVars {

$comingevents = App\Number::where('item','events')->get(array('quantity'));

我收到这个错误:

LoadVars.php 第 24 行中的 FatalErrorException: Class 'App\Http\Middleware\App\Number' 未找到

在模型中,当我定义关系时,我使用 App\Number 并且效果很好。

在中间件方法中使用 Classes 的正确方法是什么?

正如@Quasdunk 在评论中指出的那样,当您在开头引用不带反斜杠的 class 时,路径是 relative.
意思是 App\Number 将在当前命名空间中查找 App,然后是 Number

App\Http\Middleware  &  App\Number   =>  App\Http\Middleware\App\Number

你只需要在开头添加一个 \ 路径将被解释为 absolute 实际上并不重要 来自哪里 您正在使用 class

App\Http\Middleware  &  \App\Number  =>  App\Number
Foo\Bar              &  \App\Number  =>  App\Number

如果您希望代码更简洁一些,您还可以使用 use 语句导入 class:

use App\Number;

class LoadVars {
    // ...
    $comingevents = Number::where('item','events')->get(array('quantity'));
    // ...
}

注意 use 语句不需要反斜杠。所有路径都是绝对路径。