Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Model ustawień globalnych Laravel

Możesz utworzyć dostawcę usług, powiedz SettingsServiceProvider , który ładuje wszystkie ustawienia z bazy danych, a następnie przechowuje je w pamięci podręcznej. Następnie przy kolejnych ładowaniach strony może zwracać wartości ustawień z pamięci podręcznej zamiast odpytywać bazę danych, o co należy się słusznie martwić.

Coś tak prostego jak:

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

Zakładając, że twój model ustawień nazywa się Setting zgodnie z konwencją nazewnictwa Laravela. Możesz wtedy uzyskać dostęp do ustawień takich jak:

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

Jeśli chcesz mieć ładniejszy sposób dostępu do ustawień, możesz utworzyć funkcję pomocniczą:

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

Co sprawiłoby, że użycie byłoby takie:

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

Prawie emuluję config() wykorzystanie funkcji pomocniczej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pokaż tylko podkategorie wordpress

  2. MySQL — odejmowanie wartości od poprzedniego wiersza, grupowanie według

  3. Node.js i mysql Callback :zapytanie w zapytaniu callback

  4. MySQL powiedział:Dokumentacja #1045 — Odmowa dostępu dla użytkownika 'root'@'localhost' (przy użyciu hasła:NIE)

  5. Nie można uruchomić zapytania źródłowego MySQL przy użyciu modułu mysqldb w Pythonie