【发布时间】:2018-03-11 02:29:43
【问题描述】:
我想在后端添加一个“重置”按钮,如果按下它来将数据重置为标准,它只会运行所有播种机? 一定有办法做到这一点,因为我可能不是唯一一个有这个想法的人,但不幸的是我在网上找不到任何东西。
感谢您提前回复
【问题讨论】:
标签: php laravel laravel-artisan seed
我想在后端添加一个“重置”按钮,如果按下它来将数据重置为标准,它只会运行所有播种机? 一定有办法做到这一点,因为我可能不是唯一一个有这个想法的人,但不幸的是我在网上找不到任何东西。
感谢您提前回复
【问题讨论】:
标签: php laravel laravel-artisan seed
您可以直接从您的代码中调用工匠命令。例如下面的那一个 刷新所有种子和迁移。
与php artisan migrate:refresh --seed相同
Route::get('/reset', function(){
\Artisan::call('migrate:refresh',['--seed' => ' ']);
});
【讨论】:
您可以使用SomeModel::truncate(); 删除所有现有数据。删除对象后,您可以运行 $this->call(someTableSeeder::class); 再次为表播种。
你也可以在你的 PHP 代码中调用 artisan 命令(见:https://laravel.com/docs/5.0/commands),在这种情况下你可以使用类似Artisan::call('db:seed');的东西
【讨论】:
您可以从控制器运行工匠命令:
Artisan::call('migrate:fresh'); // = php artisan migrate:fresh
Artisan::call('db:seed'); // = php artisan db:seed
// OR
Artisan::call('migrate:fresh', ['--seed' => true]);
更多信息:https://laravel.com/docs/5.5/artisan#programmatically-executing-commands
【讨论】: