An Artisan console command allows calling seeders with arguments.
composer require --dev dbt/command-seederPublish the config file:
php artisan vendor:publish --provider="Dbt\CommandSeeder\CommandSeederServiceProvider" --tag="config"Then populate the seeders key with a map like so:
'seeders' => [
'my-seeder' => MySeeder::class,
];Seeders must extend the CommandSeederAbstract class. Each seeder must provide a list of arguments:
public function argumentNames(): ArgumentNames
{
return new ArgumentNames('firstArg', 'secondArg', 'etc');
}These argument names will be matched up (by index) with the provided CLI arguments and will be passed into the run method. If the number of required arguments doesn't match the number of given arguments, an exception will be thrown.
Additionally, the command's OutputStyle is passed into the seeder's constructor so you can output to the console from the seeder:
public function run(Arguments $arguments, int $quantity): void
{
$firstArg = $arguments->get('firstArg');
$allArgs = $arguments->all();
// Create some models...
$this->output->info('Write some output...');
}php artisan seed:command {seederName} {quantity} {...arguments}