在升级到Laravel 4时调用未定义的方法"Builder :: getAfterFilters"

Tah*_*ola 6 laravel-4

我尝试从Laravel 3升级到4但是到处都是这个错误

调用未定义的方法Illuminate\Database\Query\Builder :: getAfterFilters()

有人知道这会来的地方吗?

在此输入图像描述

小智 24

我也有这个错误,所以我只是在这里发表我的观察.它总能帮助别人!

似乎getAfterFilters()是L4中所有控制器所需的方法.如果错误说它没有定义,你可能忘了在你的类中扩展BaseController.

知道这一点,显而易见的解决办法是扩展BaseController ...但如果不需要,你就不必这么做了.在我的情况下,由于一个非常愚蠢的原因,我的班级必须是一个有效的控制器.我使用以下路由语法:

Route::get('sse', 'SSE@deamon');
Run Code Online (Sandbox Code Playgroud)

SSE没有扩展BaseController(不需要imho)但是这个路由语法要求你使用扩展BaseController的控制器类...所以我改为:

Route::get('sse', [function() {
    SSE::deamon();
}]);
Run Code Online (Sandbox Code Playgroud)

它现在可以正常工作,没有丢失getAfterFilters()错误!