В laravel есть несколько конфигурационных файлов, которые можно контролировать / устанавливать с помощью файла .env для разработки. Мой вопрос, возможно ли установить производственные значения через таблицу БД, например таблицу settings_mail и settings_app. Мне это нужно, чтобы админ, когда несессеры мог изменить некоторое значение в представлении и не нуждался в вводе кода
Конечно. Создайте таблицу настроек, например так:
+------------+--------------------+-------------------+
| name | value | category |
+------------+--------------------+---------+---------+
| hostname | smpt.example.com | mail |
+------------+--------------------+-------------------+
| address | San José | general |
+------------+--------------------+-------------------+
Вы создаете модель настроек на основе структуры таблицы:
<?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 = '';
}
Загрузите настройки, которые будут доступны для всего приложения:
// app/Providers/AppServiceProvider.php
public function boot(){
$settings = App\Setting::lists('name', 'value')->all();
config()->set('settings', $settings);
}
Теперь получите некоторые настройки:
$address = config('settings.address');
Других решений пока нет …