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 關注
- 102 瀏覽
添加回答
舉報