2014-05-15 70 views
0

我正在构建一个laravel应用程序,并且一切似乎都正常工作,除了我一直不断收到这些错误出现在日志文件中的事实。我的意思是他们每隔几分钟就会出现一次,有时更频繁,有时更少 - 这使得在日志文件中发现真正的问题变得更加困难。除了这些问题,它们并没有真正引起任何问题 - 我有一个App :: missing方法来照顾真正的用户。Laravel不断记录“未找到控制器方法”

您是否知道在何处寻找解决方案?

[2014-05-15 19:58:20] local.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' with message 'Controller method not found.' in /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Controller.php:254 
Stack trace: 
#0 [internal function]: Illuminate\Routing\Controller->missingMethod(Array) 
#1 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(231): call_user_func_array(Array, Array) 
#2 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(93): Illuminate\Routing\Controller->callAction('missingMethod', Array) 
#3 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(62): Illuminate\Routing\ControllerDispatcher->call(Object(HomeController), Object(Illuminate\Routing\Route), 'missingMethod') 
#4 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(934): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'HomeController', 'missingMethod') 
#5 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Array) 
#6 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Route.php(105): call_user_func_array(Object(Closure), Array) 
#7 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1000): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request)) 
#8 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Routing/Router.php(968): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request)) 
#9 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(738): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request)) 
#10 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(708): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request)) 
#11 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Http/FrameGuard.php(38): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true) 
#12 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Illuminate\Http\FrameGuard->handle(Object(Illuminate\Http\Request), 1, true) 
#13 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true) 
#14 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true) 
#15 /Applications/MAMP/htdocs/gran.pw/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true) 
#16 /Applications/MAMP/htdocs/gran.pw/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(606): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request)) 
#17 /Applications/MAMP/htdocs/gran.pw/public/index.php(49): Illuminate\Foundation\Application->run() 
#18 {main} [] [] 

回答

0

它是一个404不存在的URL。

http://example.com/this-url-does-not-exist

要查看URL实际上是造成404 - 添加到您的过滤器文件

App::missing(function($exception) 
{ 
    Log::error('Missing URL was: ' . Request::fullUrl()); 
}); 

它会记录任何异常在日志中出现的URL。

这很可能是由于搜索引擎机器人尝试搜索旧链接,或者可能是应用程序中的某些断开的链接。

I did mention this to Taylor as a possible bug in Laravel 4.1 - http异常不会记录缺少的url - 但它在当时是关闭的。我可能会重新打开它,因为我确定它是一个错误(因为旧的404记录了这个url)。

+0

感谢您的想法!我会尝试添加这一行,看看会发生什么 – InGWeT

0

看起来像你的HomeController不延长Laravel的控制器:

class HomeController extends Controller { 

} 

因为该方法missingMethod从你失踪,这一次是在Laravel控制器基类。

+0

我所有的类都扩展了BaseController,它继而扩展了Controller。你是这个意思吗? – InGWeT

+1

如果你需要帮助的人,你必须分享你的代码。我告诉我可以在日志中看到什么,Laravel试图调用missingMethod并找不到它,因此您找到了一个找不到的方法。 –