sinavia / laravel-entity
为 Laravel 提供的简洁 EAV 实现
v1.2.0
2023-06-06 05:06 UTC
Requires
- php: ~5.6|~7.0|~8.0|~8.1
This package is auto-updated.
Last update: 2024-09-06 07:53:22 UTC
README
为 Laravel 提供酷的 schemaless 模型。
详细信息
为 Laravel 提供简洁的实体-属性-值(EAV)实现。此包旨在快速即插即用“无模式”原型设计。为了实现这一点,该包仅使用两个数据库表,而标准的 EAV 至少使用三个表。
特性
- 仅使用 2 个数据库表实现 schemaless。
- 实体有类型。每个类型都像是一个类(例如,笔记、分类等)
- 实体可以有无限字段。字段可以有任何值(字符串、整数、浮点数、数组)
- 实体可以有层次结构(父级和子级)。当您有分类或路径时非常出色
- 非常适合快速原型设计
- 使用人性化的 ID(请参阅 https://github.com/Sinevia/php-library-uid)
安装
composer require sinevia/laravel-entity
如何使用
// 1. Create your model class class Note extends \Sinevia\Entities\Models\Entity { function getType() { return 'note'; } } // 2. Create new instance and add fields $note = new Note(); $note->save(); $note->setFieldValue('Title','Note title'); $note->setFieldValue('Text','Note text'); // 3. Create new instance and add fields $note = Note::find($noteId); echo $note->getFieldValue('Title'); echo $note->getFieldValue('Text'); // 4. Iterate throuhh all notes $note = Note::all(); foreach($notes as $note){ echo $note->getFieldValue('Title'); }
表结构
以下结构用于数据库。