2017-08-03 69 views
1

我有2个控制器函数调用位于应用程序文件夹下的类的静态函数。Laravel“调用未定义的方法”只在生产中发生

控制器\ UserResController.php

public function show($id, Request $request) 
{ 
    return \App\User::show($id, $request); 
} 

Conrtollers \其它\ UserResController.php

public function show($id, Request $request) 
{ 
    // other codes 

    return \App\User::show($id, $request); 
} 

应用程序\ user.php的

public static function show($id, Request $request){ 
    //codes 
} 

让我吃惊的是,这些代码运行可以在开发和分期环境中使用,但不能投入生产。

它抛出异常 '的Symfony \分量\调试\异常\ FatalErrorException' 有消息 '调用未定义的方法应用\用户::秀()'

什么原因呢?谢谢。

回答

0

生产环境可能使用较旧的缓存或编译版本。当发生这种情况,我总是尝试:

composer update 

或者

composer dump-autoload 

或者

php artisan clear-compiled 

或者

php artisan cache:clear 
+0

它的工作原理!你能解释一下吗?我检查了文档,是否因为classmap包不是最新的,为什么这样呢? – hjchin

+1

这个人解释得很好:http://developed.be/2014/08/29/composer-dump-autoload-laravel/ – Jed

+0

我们必须手动清除缓存?所以每当我推到产品时,最好清除缓存?哇....我不知道有没有一种自动化的方式。 – hjchin

相关问题