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

时间:2015-01-22 11:34:58

标签: php class laravel middleware 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: 未找到类'App \ Http \ Middleware \ App \ Number'

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

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

1 个答案:

答案 0 :(得分:2)

正如@Quasdunk在评论中指出的那样,当您在开头引用没有反斜杠的类时,路径为 relative
含义App\Number将在App的当前命名空间中查找Number

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

您只需在开头添加\,路径将被解释为绝对,实际上并不重要来自哪里你正在使用班级

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

如果您希望代码更清晰一些,您还可以使用use语句导入该类:

use App\Number;

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

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