laravel-multiplex扩展包:将时间碎片化的元数据附加到Eloquent模型上

2023-06-01 00:00:00 laravel

Laravel的Multiplex是一个Laravel包,可以将时间分割的元数据附加到Eloquent模型中。

https://github.com/kolossal-io/laravel-multiplex

随着v1.0版本的到来, 以下是主要的功能:

1.元数据是按版本保存的, 包括为未来安排元数据的能力

2.流畅的语法

3.在不触及原始列的情况下,East可以尝试用可版本的元数据扩展你的模型

4.类型转换系统

5.可配置的


下面是一些基本的例子,说明这个包是如何与一个模型一起工作的:

$post = \App\Models\Post::first();
 
// Set meta fluently for any key – `likes` is no column of `Post`.
$post->likes = 24;
 
// Or use the `setMeta` method.
$post->setMeta('likes', 24);
 
// Set multiple values
$model->setMeta([
    'hide' => true,
    'color' => '#000',
    'likes' => 24,
]);
 
// You may also schedule changes, for example, change the meta in 2 years:
$post->setMetaAt('likes', 6000, '+2 years');


你也可以用$metaKeys属性来限制一个模型上允许哪些元键。

class Post extends Model
{
    use HasMeta;
 
    protected array $metaKeys = [
        'color',
        'hide',
    ];
 
    // You can use typecast array keys
    protected array $metaKeys = [
        'foo',
        'count' => 'integer',
        'color' => 'string',
        'hide' => 'boolean',
    ];
 
}


当你设置这个包的时候, 请阅读性能部分以避免N+1查询. 

要了解更多关于这个包的信息并获得完整的安装说明, 

请查看GitHub上的laravel-metadata.


相关链接:

https://github.com/kolossal-io/laravel-multiplex/tree/09d57dc64d7a7c1d9bfb575e0159128f70568fd3#performance
https://github.com/kolossal-io/laravel-multiplex#limit-meta-keys

相关文章