2015-01-22 2 views
0

Я пытаюсь настроить промежуточное программное обеспечение. я следовал этим инструкциям:имя класса не найдено в методе промежуточного слоя - 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 \ Number и он хорошо работает.

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

+3

Вы указали абсолютное пространство имен, указав его обратным слэшем: '\ App \ Number', иначе оно будет интерпретировано относительно пространства имен, в котором вы сейчас находитесь, что является« App \ Http \ Middleware ». Или вы можете «использовать App \ Number;» вверху, а затем просто получить к нему доступ с помощью «Number :: where (...);' – Quasdunk

+0

Спасибо за отзыв. Это помогло мне получить ориентацию в новых правилах пространства имен L5. – Peter

ответ

2

Как @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 

If вам нравится ваш код немного чище, вы также можете импортировать этот класс с заявлением use:

use App\Number; 

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

Примечание, что с заявлением use не требуется обратная косая черта. Все пути будут абсолютными.

+0

Yup, @Quasdung подтолкнул меня в правильном направлении, а позже я научился объявлять классы во главе Контроллеров. Большое спасибо вам обоим! – Peter

Смежные вопросы