修改 backpack SettingsTableSeeder 逻辑,只插入新增的配置

更新日期: 2019-04-11 阅读次数: 1900 字数: 142 分类: backpack

Laravel backpack SettingsTableSeeder 的默认逻辑非常不人性化,直接 truncate 配置表,然后重新写入配置。

php artisan db:seed --class=SettingsTableSeeder

对于线上系统已有配置的情况下,非常不合理。

所以将逻辑调整了一下,改成了只写入不存在的 key。

/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    // truncate table
    // DB::table('settings')->truncate();

    foreach ($this->settings as $index => $setting) {
        $record = DB::table('settings')->where('key', $setting['key'])
            ->first();

        if ($record) {
            $this->command->info($setting['key'] . ' existed, ignore...');
        } else {
            $result = DB::table('settings')->insert($setting);

            if (!$result) {
                $this->command->info("Insert failed at record $index.");

                return;
            }
        }
    }

    $this->command->info('Inserted '.count($this->settings).' records.');
}
领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊, 查看更多联系方式。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。同时也欢迎关注我的微信公众号“大象工具”: 大象工具微信公众号

相关文章

爱评论不评论

近期节日

2020年11月26日 感恩节
2020年12月01日 世界艾滋病日
2020年12月03日 国际残疾人日
2020年12月07日 大雪
2020年12月09日 "一二九"运动纪念日
2020年12月09日 世界足球日
2020年12月10日 世界人权日
2020年12月12日 西安事变纪念日
2020年12月13日 南京大屠杀
2020年12月20日 澳门回归日
2020年12月21日 国际篮球日
2020年12月21日 冬至
查看更多节日