Laravel 管理应用程序中的设置

Laravel 管理应用程序中的设置,laravel,Laravel,我的问题是自学的,我想更好地理解如何最好地处理Laravel中应用程序的设置 假设您有一个表“设置”: 选项 价值 站点名称 示例\u名称 站点描述 示例描述 Spatiale为管理laravel设置提供了一个开源解决方案:我使用了许多其他开源解决方案,它们让生活变得非常简单 即使你决定不使用他们的软件包,你也可以从中学习到很棒的材料。如果你想使用开箱即用的Laravel,你可以创建一个模型来帮助你。为了创建模型,可以运行php artisan make:model Setting,也可以手动创

我的问题是自学的,我想更好地理解如何最好地处理Laravel中应用程序的设置

假设您有一个表“设置”:

选项 价值 站点名称 示例\u名称 站点描述 示例描述
Spatiale为管理laravel设置提供了一个开源解决方案:我使用了许多其他开源解决方案,它们让生活变得非常简单


即使你决定不使用他们的软件包,你也可以从中学习到很棒的材料。

如果你想使用开箱即用的Laravel,你可以创建一个模型来帮助你。为了创建模型,可以运行
php artisan make:model Setting
,也可以手动创建模型。下面是一个示例,您应该将其放入/App/Models目录中的新文件(
Setting.php
)中

<?php
            
namespace App\Models;
            
use Illuminate\Database\Eloquent\Model;
            
class Setting extends Model
{

   /**
   * The table associated with the model.
   *
   * @var string
   */
   protected $table = 'Settings';

   /**
   * The primary key associated with the table.
   *
   * @var string
   */
   protected $primaryKey = 'option';

   /**
   * Indicates if the model's ID is auto-incrementing.
   *
   * @var bool
   */
   public $incrementing = false;

   /**
   * The data type of the auto-incrementing ID.
   *
   * @var string
   */
   protected $keyType = 'string';

   /**
   * The attributes that are mass assignable.
   *
   * @var array
   */
   protected $fillable = ['option', 'value'];

}
或者,您可以使用此行请求数据库中列出的所有设置:

// Retrieve all settings
$settings = Setting::all();
您可以使用如下代码进一步处理设置:

// Create a list of all options and associated values
foreach ($settings as $setting) {
   echo $setting->option . ": " . $setting->value;
}
您可以在和联机中找到有关Laravel模型的更多信息。 我还没有测试代码,但它们应该可以工作

更新所有选项 如果要更新所有选项,应创建如下HTML表单:

<form action="{{ route('setting.update') }}" method="POST">
   @csrf
   @method('PUT')
   @foreach ($settings as $setting)
      <label>{{ $setting->option }}</label>
      <input type="text" name="{{ $setting->option }}" value="{{ $setting->value }}"/>
   @endforeach
   <input type="submit">
</form>

我不确定更新是否能正确使用上述代码,因此请告诉我:)

您遇到的更新问题是什么?你所说的“获取它们”是什么意思?我想知道,在看过特定的数据库模式之后,如何获取条目,例如(站点名称),以及如何在控制器中创建与管理所有这些字段的表单相关联的干净代码?请从Digital Ocean中查看。我想这会帮助你继续前进。同时看看这个:谢谢你的帮助,我投了你一票。我想知道新的数据库模式,如何用各种设置更新表单中的数据,在此之前:$update=settings::first()->update(['site\u name'=>request('site\u name'),'site\u tagline'=>request('site\u tagline'),'site\u description'=>request('site\u description'));嗨@Bonny,我已经更新了我的答案。这就是你的意思吗?如果是的话,你能检查一下它是否有效吗?谢谢不幸的是,我必须管理各种类型的输入,将它们放在一个周期内,我被迫只使用一种类型。为了更好地解释我,假设您正在更新一些应用程序设置,其中一些字段是未更改的。
<form action="{{ route('setting.update') }}" method="POST">
   @csrf
   @method('PUT')
   @foreach ($settings as $setting)
      <label>{{ $setting->option }}</label>
      <input type="text" name="{{ $setting->option }}" value="{{ $setting->value }}"/>
   @endforeach
   <input type="submit">
</form>