在OctoberCMS中调用其他播种器失败,找不到类错误

时间:2017-05-28 08:01:20

标签: php laravel octobercms octobercms-plugins

我有传播类,我确认它们可以单独运行,我正在尝试从同一命名空间中的另一个播种器类运行它们。
我收到一个错误,说没有找到从另一个播种机开始的课程。
我正在使用OctboerCMS build 419。

播种机类呼叫子接收器

<?php namespace Cocci\Custom\Updates;
use Seeder;

class SeedTablesCocciPedale extends Seeder
{
    public function run()
    {
        $this->call('Cocci\Custom\Updates\SeedTablesCocciBike005');
        $this->call('Cocci\Custom\Updates\SeedTablesCocciColor');
//        $this->call(SeedTablesCocciBike005::class);
//        $this->call(SeedTablesCocciColors::class);
    }
}

播种机由另一个播种机召唤

<?php namespace Cocci\Custom\Updates;

use Seeder;
use Cocci\Custom\Models\Product;
use Cocci\Custom\Models\Part;
use Cocci\Custom\Models\PreviewType;
use Cocci\Custom\Models\PartType;
use Cocci\Custom\Models\PartPreviewPosition;

class SeedTablesCocciBike005 extends Seeder
{
    public function run()
    {
        $partTypeSetAll = PartType::create([
            'name' => 'set_all',
            'category' => PartType::CAT_ALL_PARTS,
        ]);
        $partTypeNoPaintParts = PartType::create([
            'name' => 'no_paint_parts',
            'category' => PartType::CAT_NON_CUSTOMIZABLE,
        ]);
        ...
    }
}

错误

% php artisan plugin:refresh Cocci.Custom
Rolled back: Cocci.Custom
Reinstalling plugin...
PHP Fatal error:  Class 'Cocci\Custom\Updates\SeedTablesCocciBike005' not found in /Library/WebServer/Documents/cocci-custom/vendor/laravel/framework/src/Illuminate/Database/Seeder.php on line 62

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Cocci\Custom\Updates\SeedTablesCocciBike005' not found 

我尝试了两种方式,通过完全限定名称的字符串和class关键字来指定类,但两种方式都没有效果。可能这些播种机类没有加载? 我该怎么办? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

call additional seeder类中使用播种器类时,需要确保要自动加载播种器类。

假设您的种子类分别称为seed_tables_cocci_bike_005.phpseed_tables_cocci_color.php,则可以按照以下步骤将这些文件添加到classmap dev自动加载器中。

"autoload-dev": {
    "classmap": [
        "tests/TestCase.php",
        "tests/UiTestCase.php",
        "tests/PluginTestCase.php",
        "plugins/cocci/custom/updates/seed_tables_cocci_bike_005.php",
        "plugins/cocci/custom/updates/seed_tables_cocci_color.php"
    ]
}

在composer.json文件更新后,请记住composer dumpautoload