我希望实现一些全局应用设置,例如应用程序名称,一周中的第一天以及其他功能标记。最终目标是让管理员通过API来获取和编辑这些内容。
最方便的方法是什么?我已经尝试过使用设置模型来存储键值对,但这对我来说没有意义,因为所需的设置应该经过硬编码,并且不会更改,并且播种“设置”表听起来并不理想。预先感谢!
答案 0 :(得分:0)
您可以从Laravel提供的配置功能访问应用名称。
$appName = config('app.name');
// This value is retrieved from .env file of APP_NAME=
如果必须存储与周有关的多个值,则可以创建一个新的配置文件week.php
//config/week.php
return [
...
'first_day_of_the_week' => 0
];
为了检索“ the_week_of_the_week”,您可以使用相同的功能配置
$firstDayOfTheWeek = config('week.first_day_of_the_week')
类似于其他基本标志,您可以创建一个新的配置文件。 您以后可以使用以下命令缓存配置变量。
php artisan config:cache
您还可以在laravel项目中任何首选位置内创建一个Helper类。我将帮助器类保留在App \ Helpers中。
<?php
namespace App\Helpers;
use Carbon\Carbon;
class DateHelpers
{
public const DATE_RANGE_SEPARATOR = ' to ';
public static function getTodayFormat($format = 'Y-m-d')
{
$today = Carbon::now();
$todayDate = Carbon::parse($today->format($format));
return $todayDate;
}
....
}
如果需要在Laravel项目中检索方法值,可以通过
访问$getTodayDateFormat = App\Helpers\DateHelpers::getTodayFormat();
编辑1:
基于问题描述。您需要在设置表中创建一行。
//create_settings_table.php Migration File
public function up()
{
// Create table for storing roles
Schema::create('settings', function (Blueprint $table) {
$table->increments('id');
$table->string('app_name')->default("My App Name");
$table->unsignedInteger('first_day_of_the_week')->default(1);
....
$table->timestamps();
});
}
您只需要在设置表中一行即可检索/更新默认值。
//获取第一天
$first_day_of_the_week = App\Setting::first()->first_day_of_the_week;
//更新第一天
...
$first_day_of_the_week = request('first_day_of_the_week');
App\Setting::first()->update([
'first_day_of_the_week' => $first_day_of_the_week
]);