Files
Atomcms-edit/database/seeders/BaseSettingsSeeder.php
T
2026-05-09 17:32:17 +02:00

45 lines
1.0 KiB
PHP
Executable File

<?php
namespace Database\Seeders;
use App\Models\Miscellaneous\WebsiteSetting;
use Illuminate\Database\Seeder;
abstract class BaseSettingsSeeder extends Seeder
{
/**
* Get the settings array to be seeded.
* Override this in child classes.
*/
abstract protected function getSettings(): array;
/**
* Run the database seeds.
*/
public function run(): void
{
foreach ($this->getSettings() as $setting) {
WebsiteSetting::firstOrCreate(
['key' => $setting['key']],
[
'key' => $setting['key'],
'value' => $setting['value'],
'comment' => $setting['comment'] ?? null,
],
);
}
}
/**
* Create a setting array with common structure.
*/
protected function setting(string $key, string $value, string $comment = ''): array
{
return [
'key' => $key,
'value' => $value,
'comment' => $comment,
];
}
}