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
相关文章