3 回答
TA贡献1858条经验 获得超8个赞
无法直接指定参数。
如果要通过命令行指定参数,可以使用环境变量。
class UsersTableSeeder extends Seeder
{
public function run()
{
$limit = env('SEEDER_LIMIT', 1);
echo $this->limit;
}
}
像这样调用:
SEEDER_LIMIT=10 php artisan db:seed --class=UsersTableSeeder
TA贡献1851条经验 获得超5个赞
据我所知,播种机没有参数之类的东西,但您可以自己实现。您可以创建一个接受参数的新命令,并使用这些附加参数以编程方式调用播种器。
这样的事情应该可以解决问题:
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
public function run(int $limit)
{
echo $limit;
// Seed some stuff
}
}
namespace App\Console\Commands;
use Illuminate\Console\Command;
use UsersTableSeeder;
class SeedCommand extends Command
{
protected $signature = 'app:seed {limit}';
public function handle(UsersTableSeeder $seeder)
{
$limit = $this->argument('limit');
$seeder->run($limit);
}
}
TA贡献1943条经验 获得超7个赞
你可以这样设置:
public function run($count = 1)
然后你可以通过这种方式传递参数:
$this->call(ClientSeeder::class, false, ['count' => 500]);
- 3 回答
- 0 关注
- 73 浏览
添加回答
举报