Bham
Bham

Reputation: 319

Laravel 5.1 set config through db

In laravel there are some config files which could be controlled / set with .env file for developing. My question is it possible to set the production values through a db table for example a settings_mail and settings_app table. I need this so that the admin when nessesery could change Some value in a view and doesn't need entering the code

Upvotes: 0

Views: 793

Answers (1)

manix
manix

Reputation: 14747

Create a settings table, like this:

name value category
hostname smpt.example.com mail
address San José general

Create a setting model based in table structure:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Setting extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'settings';

    protected $name = '';
    protected $value = '';
    protected $category = '';
}

Load the settings to be accessible at entire application:

// app/Providers/AppServiceProvider.php
public function boot(){
    $settings = App\Setting::lists('name', 'value')->all();
    config()->set('settings', $settings);
}

Now, get some config:

$address = config('settings.address');

Upvotes: 1

Related Questions