bnhashem/form-data

轻松将数据库列数据添加到blade视图中

v2.0.0 2021-06-18 23:01 UTC

This package is auto-updated.

Last update: 2024-09-19 06:41:56 UTC


README

轻松将数据库列数据添加到blade视图中。

Latest Version on Packagist Total Downloads

安装

您可以通过composer安装此包

composer require bnhashem/form-data

功能

  • 非常易于使用。
  • 帮助使用单个表单进行创建和更新。
  • 值名称与数据库列名称相同,节省您在视图中条件调用 old 的情况。
use Bnhashem\FormData\FormData;

$formData = new FormData();

使用方法

创建

use Bnhashem\FormData\FormData;

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return view('your.custom.view', FormData::old(new Model()));
}

编辑

use Bnhashem\FormData\FormData;

/**
 * Show the form for editing the specified resource.
 *
 * @param  \App\Models\Model $model
 * @return \Illuminate\Http\Response
 */

public function edit(Model $model)
{
    return view('your.custom.view', FormData::edit($model);
}

示例

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('content');
        $table->timestamps();
    });
}

我们将尝试存储一条新帖子

use Bnhashem\FormData\FormData;

public function create()
{
    return view('your.custom.view', FormData::old(new Post()));
}

请注意,变量的名称必须与数据库列名称的值相同

<div class="form-group col-6">
    <label>{{ __('Name') }}</label>
    <input type="text" name="name" value="{{ $name }}">
    @error('name') <span class="erorr">{{ $message }}</span> @enderror
</div>

我们将尝试编辑一条帖子

use Bnhashem\FormData\FormData;

public function edit(Post $post)
{
    return view('your.custom.view', FormData::edit($post));
}
<div class="form-group col-6">
    <label>{{ __('Name') }}</label>
    <input type="text" name="name" value="{{ $name }}">
    @error('name') <span class="erorr">{{ $message }}</span> @enderror
</div>

JSON列

有时列有许多值和唯一的键,在这种情况下,我们将执行以下操作

posts表迁移

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->json('name');
        $table->json('content');
    });
}

帖子模型

添加静态属性 $JSONCOLUMNS,包含列名称和您想在blade中添加的键。

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{

    public static $JSONCOLUMNS = [
        'name' => ['en', 'ar'], 
        'content' => ['ar', 'en']
        ];

}

从blade中的JSON列中获取数据

<div class="form-group col-6">
    <label>{{ __('English Name') }}</label>
    <input type="text" name="name['en']" value="{{ $name['en'] }}">
    @error('name.en') <span class="erorr">{{ $message }}</span> @enderror
</div>


<div class="form-group col-6">
    <label>{{ __('Arabic Name') }}</label>
    <input type="text" name="name['ar']" value="{{ $name['ar'] }}">
    @error('name.ar') <span class="erorr">{{ $message }}</span> @enderror
</div>

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件