bnhashem / form-data
轻松将数据库列数据添加到blade视图中
v2.0.0
2021-06-18 23:01 UTC
Requires
- php: ^7.3|^8.0
- illuminate/contracts: ^8.0|^7.0|^6.0|^5.5
Requires (Dev)
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.0|^5.0|^4.0|^3.0
- phpunit/phpunit: ^9.3|^8.0
README
轻松将数据库列数据添加到blade视图中。
安装
您可以通过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)。有关更多信息,请参阅许可证文件。