имя класса не найдено в методе промежуточного программного обеспечения — 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'));

Я получил эту ошибку:

FatalErrorException в строке LoadVars.php 24:
Класс ‘App \ Http \ Middleware \ App \ Number’ не найден

В моделях, когда я определяю отношения, я использую App \ Количество и это работает хорошо.

Как правильно использовать классы внутри метода промежуточного программного обеспечения?

0

Решение

Как указал @Quasdunk прямо в комментариях, когда вы ссылаетесь на класс без обратной косой черты в начале, путь родственник.
Имея в виду 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 Заявление, что нет необходимости в обратном слэше. Все пути будут абсолютными.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]