我跟随" Code Bright"书中的例子(Laravel 4),还试着对我自己进行一些修改。
当我开始尝试类过滤器时,我开始遇到此异常:使用我拥有的任何过滤器调用未定义的方法Illuminate \ Routing \ Route :: filter()在app / filters.php中(即使使用默认提供的过滤器,例如" auth")。文件中没有注释掉的第一个引发异常。
尽管我还没有自动加载自定义过滤器类文件夹,名为app / filters,但我无法摆脱它。当然我使用过" composer dump-autoload"我每次都改变了composer.json。
什么必须触发此异常?我没有从调试回溯中获得太多信息。
答案 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(注意&#34;应用程序/过滤器&#34;行&#34;自动加载&#34;)
{
"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!!';
}
));