Laravel 8博客应用中,如何在表创建成功后运行数据填充器?
自动运行数据库填充器的实现方案
在你的InstallController中,只需在执行迁移命令后添加数据库填充的Artisan调用即可,修改后的代码如下:
class InstallController extends Controller { public function index() { if (!Schema::hasTable('users')) { // 执行数据库迁移 Artisan::call('migrate'); // 执行默认的数据库填充(会运行DatabaseSeeder类) Artisan::call('db:seed'); // 若需指定单个填充器类,可使用以下写法: // Artisan::call('db:seed', ['--class' => 'YourCustomSeeder']); } return redirect('/register')->with('success', 'Way to go! You can create an account.'); } }
关键说明
- 默认情况下,
db:seed命令会执行database/seeders/DatabaseSeeder.php中的代码,如果你已经在这个类中调用了其他填充器,无需额外修改 - 由于代码仅在
users表不存在时执行,填充逻辑只会在首次安装时运行一次,不会造成数据重复填充的问题 - 如果只想运行特定的填充器,比如初始化博客分类的
CategorySeeder,直接通过--class参数指定即可
内容的提问来源于stack exchange,提问作者Razvan Zamfir
相关产品推荐
相关产品推荐

