我有传播类,我确认它们可以单独运行,我正在尝试从同一命名空间中的另一个播种器类运行它们。
我收到一个错误,说没有找到从另一个播种机开始的课程。
我正在使用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
关键字来指定类,但两种方式都没有效果。可能这些播种机类没有加载?
我该怎么办?
提前谢谢。
答案 0 :(得分:0)
在call additional seeder类中使用播种器类时,需要确保要自动加载播种器类。
假设您的种子类分别称为seed_tables_cocci_bike_005.php
和seed_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
。