这是 Laravel 5.5 的更新答案。
首先,为您创建一个迁移settings
table:
Schema::create('settings', function (Blueprint $table) {
$table->increments('id');
$table->string('key');
$table->text('value')->nullable();
$table->timestamps();
});
然后创建一个Setting
model:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Setting extends Model
{
protected $fillable = ['key', 'value'];
}
Now, in AppServiceProvider
,将以下内容添加到您的boot()
method:
if (Schema::hasTable('settings')) {
foreach (Setting::all() as $setting) {
Config::set('settings.'.$setting->key, $setting->value);
}
}
这将创建config('settings.*')
对于数据库中的每个设置,其中*
是关键。
例如,插入/创建以下设置:
Setting::create([
'key' => 'example',
'value' => 'Hello World',
]);
现在您可以访问config('settings.example')
,这会给你Hello World
.
更新设置就像执行以下操作一样简单:
Setting::where('key', 'example')->update([
'value' => 'My New Value',
]);