2014-08-08 2 views
-1

Я следую примерам «Code Bright» (Laravel 4), но также опробовал несколько небольших модификаций мой собственный.Исключение Laravel Я не могу избавиться: вызов неопределенного метода Illuminate Routing Route :: filter()

Когда я начал пытаться классовыми фильтрамия начал получать это исключение: Вызова неопределенного метода Illuminate \ Routing \ Route :: фильтр() с любым фильтром я имею в приложении/filters.php (даже с фильтры, предоставленные по умолчанию как «auth»). Первое в файле, которое не закомментировано, вызывает исключение.

Я не могу избавиться от него, несмотря на то, что я откатился, чтобы не автозагружать папку классов пользовательских фильтров с именем app/filters. Конечно, я использовал «компоновщик-автозагрузка» каждый раз, когда я менял composer.json.

Что должно вызывать это исключение? Я не получаю много информации из отладочной обратной линии.

Screen capture

+0

Можете ли вы вставить свой конфигурационный файл 'app.php' и ваш файл' composer.json'? – lowerends

+0

Ой! Поскольку я хотел, чтобы он снова работал, я только что сделал жесткий сброс приложения сразу после его установки, а затем с теми маршрутами, которые я использовал ранее в учебнике, наклеенном и загруженным. Можно ли перейти к моей последней фиксации до сброса? –

ответ

0

я наконец установил ее.

Сброс в исходное состояние приложения и создание фильтра снова. Я выполнил те же шаги, и я уверен, что все было одинаково при запуске ошибки. Но сейчас ничего плохого не происходит. Я понятия не имею, что мешает и поднимает ошибку. Все, что у меня было раньше, это простые маршруты и другие простые фильтры. Класс

Фильтр:

// app/filters/filtermyclassfilter.php 
class FilterMyClassFilter 
{ 
    public function filter($route, $request) 
    { 
     if (date('m') >= 7 && date('m') <= 9) { 
      return 'the filter has been triggered'; 
     } 
    } 
} 

composer.json (обратите внимание на строку "приложение/фильтры" в "автозагрузку")

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "require": { 
     "laravel/framework": "4.2.*" 
    }, 
    "autoload": { 
     "classmap": [ 
      "app/commands", 
      "app/controllers", 
      "app/models", 
      "app/filters", 
      "app/database/migrations", 
      "app/database/seeds", 
      "app/tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "post-update-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    }, 
    "minimum-stability": "stable" 
} 

Фильтр псевдоним:

// app/filters.php 
Route::filter('classfilter', 'FilterMyClassFilter'); 

маршрут назначен для фильтрации:

// app/routes.php 
Route::get('/pathtoclassfilter', array(
    'before' => 'classfilter', 
    function() { 
     return 'Filter not triggered!!'; 
    } 
)); 
Смежные вопросы