Anda dapat membuat penyedia layanan, misalnya SettingsServiceProvider
, yang memuat semua pengaturan dari database dan kemudian menyimpannya dalam cache. Kemudian pada pemuatan halaman berikutnya, itu bisa mengembalikan nilai pengaturan yang di-cache daripada menanyakan database, yang seharusnya Anda perhatikan.
Sesuatu yang sederhana seperti:
class SettingsServiceProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->singleton('settings', function ($app) {
return $app['cache']->remember('site.settings', 60, function () {
return Setting::pluck('value', 'key')->toArray();
});
});
}
}
Dengan asumsi model pengaturan Anda disebut Setting
sesuai konvensi penamaan Laravel. Anda kemudian dapat mengakses pengaturan seperti ini:
<h1>{{ array_get(app('settings'), 'site.name') }}</h1>
Jika Anda menginginkan cara yang lebih cantik untuk mengakses pengaturan, Anda dapat membuat fungsi pembantu:
function setting($key)
{
return array_get(app('settings'), $key);
}
Yang akan membuat penggunaan seperti ini:
<h1>{{ setting('site.name') }}</h1>
Hampir meniru config()
penggunaan fungsi pembantu.