【问题标题】:Laravel console command trait method not found未找到 Laravel 控制台命令特征方法
【发布时间】:2020-07-06 15:58:06
【问题描述】:

我有一个使用 Forge 部署的 Laravel 项目,并使用 Forge 启用了 OPCache。上周我注意到,当我推送一些更改时,视图和控制器中的更改存在于服务器上,但我运行的自定义工匠命令无法识别更新。

换句话说,对刀片的更新会显示在屏幕上。我添加到控制器的更新正在改变信息传递到刀片文件的方式,但是我有一个自定义的工匠命令,它在一个特征中运行一系列方法。服务器上的实际文件显示了我推送的新方法,但是当我在 CLI 中运行 artisan 命令时,它说找不到该方法。

我已经无数次停止、重新启动和重新加载 OPCache。我已经重新启动了 Nginx。我已禁用 OPCache 并重新启动 PHP。还是说找不到方法。有人有什么想法吗?

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Traits\FTPImportsTrait;

class CheckFTPImports extends Command
{
   use FTPImportsTrait;

   protected $signature = 'checkForImports';

   protected $description = 'Check for imports...';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
      $this->checkBankImports();
    }
}

-----------

<?php

namespace App\Traits;

trait FTPImportsTrait;
{
   public function checkBankImports()
   {
      dd('YOU ARE NOT CRAZY');
   }
}

$ php artisan checkForImports

$ 方法 checkBankImports 不存在。

更新:

这一定是服务器上的某种配置问题。我刚刚将该项目部署到一个新的 DO 液滴上,并且该命令按预期工作。

【问题讨论】:

  • 也许:php artisan clear-compiled ?因为在生产中php artisan optimize 可能会一起编译所有文件
  • 你是一个救生员。 php artisan clear-compiled 工作正常。
  • 太棒了。现在自己写下你的问题的答案,并得到同样陷入同样境地的人的支持。
  • 说真的,谢谢!
  • 还将标题更改为更相关:Laravel console command trait method not found

标签: php laravel nginx opcache laravel-forge


【解决方案1】:

对我来说只发生在生产环境中。

跑步:

php artisan clear-compiled 

删除了缓存版本并解决了我的问题。

非常感谢@num8er。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2021-04-14
    • 2016-09-27
    • 2017-03-17
    • 2011-10-21
    相关资源
    最近更新 更多