仅在生产中发生的 La​​ravel“调用未定义方法”

hjc*_*hin 5 php symfony laravel

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

控制器\UserResController.php

public function show($id, Request $request)
{
   return \App\User::show($id, $request);
}
Run Code Online (Sandbox Code Playgroud)

控制器\其他\UserResController.php

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

   return \App\User::show($id, $request);
}
Run Code Online (Sandbox Code Playgroud)

应用\用户.php

public static function show($id, Request $request){
   //codes
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这些代码在开发和登台环境中运行良好,但在生产环境中却没有。

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

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

Jed*_*Jed 4

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

composer update
Run Code Online (Sandbox Code Playgroud)

或者

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

或者

php artisan clear-compiled
Run Code Online (Sandbox Code Playgroud)

或者

php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)