在文件夹内调用 Laravel 播种器
Calling Laravel Seeder inside folder
我已经升级到 Laravel 8,但我在子目录中的自定义播种器无法正常工作。该文件位于 database/seeders/tests/TestSeeder.php.
当我运行命令php artisan db:seed --class="TestSeeder"
它return一个错误信息:
Target class [Database\Seeders\TestSeeder] does not exist.
播种机
<?php
namespace Database\Seeders\Tests;
class TestSeeder extends BaseSeeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// codes
}
}
composer.json
"autoload": {
"psr-4": {
"App\": "app/",
"Database\Factories\": "database/factories/",
"Database\Seeders\": "database/seeders/",
"Database\Seeders\Tests\": "database/seeders/tests/"
}
},
Laravel 假设您是 运行 来自 Database\Seeders\DatabaseSeeder
class 的播种者。如果您提供不合格的 class 名称,例如 TestSeeder
,它会假定您指的是 Database\Seeders\TestSeeder
class.
因此,您应该指定完全限定的 class 名称。
php artisan db:seed --class="Database\Seeders\Tests\TestSeeder"
子文件夹不用管,命令里不用提,
- 只是 运行
composer dump-autoload
- 然后 运行
php artisan db:seed --class="TestSeeder"
命令
这会很好用。
我已经升级到 Laravel 8,但我在子目录中的自定义播种器无法正常工作。该文件位于 database/seeders/tests/TestSeeder.php.
当我运行命令php artisan db:seed --class="TestSeeder"
它return一个错误信息:
Target class [Database\Seeders\TestSeeder] does not exist.
播种机
<?php
namespace Database\Seeders\Tests;
class TestSeeder extends BaseSeeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// codes
}
}
composer.json
"autoload": {
"psr-4": {
"App\": "app/",
"Database\Factories\": "database/factories/",
"Database\Seeders\": "database/seeders/",
"Database\Seeders\Tests\": "database/seeders/tests/"
}
},
Laravel 假设您是 运行 来自 Database\Seeders\DatabaseSeeder
class 的播种者。如果您提供不合格的 class 名称,例如 TestSeeder
,它会假定您指的是 Database\Seeders\TestSeeder
class.
因此,您应该指定完全限定的 class 名称。
php artisan db:seed --class="Database\Seeders\Tests\TestSeeder"
子文件夹不用管,命令里不用提,
- 只是 运行
composer dump-autoload
- 然后 运行
php artisan db:seed --class="TestSeeder"
命令
这会很好用。