将时间切片元数据附加到 Eloquent 模型
发表于 作者 Paul Redmond
Laravel Multiplex 是一个 Laravel 包,用于将时间切片元数据附加到 Eloquent 模型。随着 v1.0 版本的发布临近,以下是主要功能
- 元数据保存在版本中,包括为将来计划元数据的能力
- 流畅的语法
- 轻松尝试用可版本控制的元数据扩展您的模型,而无需接触原始列
- 类型转换系统
- 可配置的
以下是一些使用模型工作的基本示例
$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。