halalsoft/laravel-dynamic-column

为Laravel Eloquent/查询构建器提供特性,用于处理MariaDB动态列。

v0.1.3 2022-08-29 20:48 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:05 UTC


README

Latest Version on Packagist Software License Quality Score Total Downloads

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)。有关更多信息,请参阅许可证文件