Laravel 未找到控制台命令特征方法
Laravel console command trait method not found
我有一个 Laravel 项目,该项目已使用 Forge 部署并使用 Forge 启用了 OPCache。上周我注意到,当我推送一些更改时,视图和控制器中的更改出现在服务器上,但是我 运行 无法识别更新的自定义 artisan 命令。
换句话说,blade 的更新显示在屏幕上。我添加到控制器的更新正在改变信息传递到 blade 文件的方式,但我有一个自定义 artisan 命令,它 运行 是特征中的一系列方法。服务器上的实际文件显示我推送的新方法,但是当我在 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 droplet,命令按预期工作。
只发生在我的生产环境中
运行:
php artisan clear-compiled
删除了缓存版本并解决了我的问题。
非常感谢@num8er。
我有一个 Laravel 项目,该项目已使用 Forge 部署并使用 Forge 启用了 OPCache。上周我注意到,当我推送一些更改时,视图和控制器中的更改出现在服务器上,但是我 运行 无法识别更新的自定义 artisan 命令。
换句话说,blade 的更新显示在屏幕上。我添加到控制器的更新正在改变信息传递到 blade 文件的方式,但我有一个自定义 artisan 命令,它 运行 是特征中的一系列方法。服务器上的实际文件显示我推送的新方法,但是当我在 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 droplet,命令按预期工作。
只发生在我的生产环境中
运行:
php artisan clear-compiled
删除了缓存版本并解决了我的问题。
非常感谢@num8er。