【问题标题】:Laravel "Call to undefined method" which only happens in productionLaravel“调用未定义的方法”仅在生产中发生
【发布时间】:2017-08-03 11:15:47
【问题描述】:

我有 2 个控制器函数,它们调用位于 app 文件夹下的类的静态函数。

控制器\UserResController.php

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

Conrtollers\Other\UserResController.php

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

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

app\User.php

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

令我惊讶的是,这些代码在开发和暂存环境中运行良好,但在生产环境中却不行。

它抛出异常 'Symfony\Component\Debug\Exception\FatalErrorException' 并带有消息 'Call to undefined method App\User::show()'

是什么原因造成的?谢谢。

【问题讨论】:

    标签: php laravel symfony


    【解决方案1】:

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

    composer update
    

    或者

    composer dump-autoload
    

    或者

    php artisan clear-compiled
    

    或者

    php artisan cache:clear
    

    【讨论】:

    • 有效!你能解释一下吗?我查了文档,是不是因为classmap包不是最新的,为什么会这样?
    • 我们必须手动清除缓存?所以每当我推到生产时,最好清除缓存?哇....我想知道有没有一种自动化的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-04-13
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多