halalsoft / laravel-dynamic-column
为Laravel Eloquent/查询构建器提供特性,用于处理MariaDB动态列。
v0.1.3
2022-08-29 20:48 UTC
Requires
- php: >=7.3
- illuminate/database: 6.*|7.*|8.*|9.*
- illuminate/support: 6.*|7.*|8.*|9.*
Requires (Dev)
- orchestra/testbench: ^4.0 || ^5.0 || ^6.0
- phpunit/phpunit: 8.* || ^9.0
README
laravel-dynamic-column
包提供了一个HasDynamicColumn
特性,允许您通过Eloquent或查询构建器轻松处理MariaDB动态列。
// The `Author` class uses the `HasDynamicColumn` trait and `Dynamic` cast attribute on the `option` column $author = Author::where('option->vehicle','car')->first(); $author = $author->option; // => Array containing `option` dynamic column $option = $author->option; $option['vehicle_brand'] = 'Esemka'; $author->option = $option; $author->save(); //You can also create data field as array $newData = MyModel::create([ 'other_column' => 'this just another column data', 'the_column' => ['data1'=>'value1','data2'=>'value2'] ]); //to update a json field/key you use, you may use the `->` operator when calling the update method: $page->update(['content->data1' => 'value1new']); //or you can still update whole column using normal array: $page->update(['content' => ['data1'=>'value1new','data2'=>'value2new']]); //You can set as array using other method like `updateOrCreate()`, `firstOrCreate()`, etc. //This package also support query builder using: Model::query()->where('the_column->data1', 'value1')->first();
安装
您可以通过composer安装此包
composer require halalsoft/laravel-dynamic-column
使用方法
您可以通过添加HasDynamicColumn
特性,并将Dynamic
用作属性类型转换,来开始使用此包。
use Illuminate\Database\Eloquent\Model; use Halalsoft\LaravelDynamicColumn\Dynamic; use Halalsoft\LaravelDynamicColumn\HasDynamicColumn; class Post extends Model { use HasDynamicColumn; protected $casts = [ 'content' => Dynamic::class, ]; }
其他说明将很快添加
安全
如果您发现任何与安全相关的问题,只需在此git上打开一个问题,或通过dyas@yaskur.com给我发邮件。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。