Laravel Artisan命令-“找不到类”

时间:2018-07-11 12:39:39

标签: php laravel artisan octobercms

好的,我这里有一些巫毒魔法。 inb4-我已经使作曲家转储和dump-autoload达到10万次。

<?
namespace Cds\Goods\Classes;

use Cds\Goods\Classes\Logs;
use Cds\Goods\Classes\AttributeUniteFront;

class ShiptorSync extends Shiptor{

    public static function sync_products() {    
        Logs::add_to_log("shiptor_sync", date("d.m.Y"), "begin sync shiptor products");
        $name = AttributeUniteFront::getSlugProduct($item->cds_products_id);
    }
}

这是我的类,该类是我在控制台命令中调用的功能sync_products()

<?php
​
namespace App\Console\Commands;
​
use Cds\Goods\Classes\ShiptorSync;
use Illuminate\Console\Command;
​
/**
 * Class ShiptorSynchronizeProducts
 */
class ShiptorSynchronizeProducts extends Command
{
  /**
   * The name and signature of the console command.
   *
   * @var string
   */
  protected $signature = 'shiptor:products:synchronize';
​
  /**
   * The console command description.
   *
   * @var string
   */
  protected $description = 'Sync goods';
​
  /**
   * Execute the console command.
   */
  public function handle()
  {
    ShiptorSync::sync_products();
  }
}

每当我从控制台运行它时-找不到类'Cds \ Goods \ Classes \ AttributeUniteFront'

但是!成功找到类日志。哎呀...

enter image description here

班在他的位置

AttributeFront获得正确的名称空间 enter image description here

即使在IDE中,它也使用灰色字体和错误进行绘制,就像在页面上未使用一样。会是什么??

enter image description here

enter image description here

否,这到底是什么?它告知未找到课程,并错误地向我抛出了未成立课程的完整列表!!!

enter image description here

2 个答案:

答案 0 :(得分:1)

添加到命令控制器:

 public function __construct()
    {
        parent::__construct();
    }

在Kernel.php中:

protected $commands = [
        //
        '\App\Console\Commands\ShiptorSynchronizeProducts',
    ];

然后,为什么不只处理()命令中的sync_products?另外,似乎没有定义$ item。

将此添加到命令文件:

    use Cds\Goods\Classes\Logs;
    use Cds\Goods\Classes\AttributeUniteFront;

public function handle()
  {
    Logs::add_to_log("shiptor_sync", date("d.m.Y"), "begin sync shiptor products");
        $name = AttributeUniteFront::getSlugProduct($item->cds_products_id);
  }
}

答案 1 :(得分:0)

天哪,我不知道为什么,但情况是打开短的PHP标签,尽管启用了short_open_tag。但是我改变它,一切正常。