Mysql
 sql >> база данни >  >> RDS >> Mysql

Модел за глобални настройки на Laravel

Можете да създадете доставчик на услуги, кажете SettingsServiceProvider , който зарежда всички настройки от базата данни и след това ги кешира. След това при следващи зареждания на страница, той може да върне кеширани стойности на настройките, вместо да прави заявки към базата данни, за което с основание трябва да се притеснявате.

Нещо толкова просто като:

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();
            });
        });
    }
}

Ако приемем, че моделът на настройките ви се нарича Setting според конвенциите за именуване на Laravel. След това можете да получите достъп до настройки по следния начин:

<h1>{{ array_get(app('settings'), 'site.name') }}</h1>

Ако искате по-хубав начин за достъп до настройките, можете да създадете помощна функция:

function setting($key)
{
    return array_get(app('settings'), $key);
}

Което би направило използването по следния начин:

<h1>{{ setting('site.name') }}</h1>

Почти емулира config() използване на помощната функция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преминаване от MySQL към Cassandra - плюсове/против?

  2. Как да промените часовата зона на MySQL сървъра

  3. Как да се свържа с Mysql с помощта на C#?

  4. Има ли РЕАЛНА разлика в производителността между първичните ключове INT и VARCHAR?

  5. Има ли начин да се инсталира само mysql клиента (Linux)?