harp-orm/materialized-path
Composer 安装命令:
composer require harp-orm/materialized-path
包简介
Materialized path nesting for Harp ORM models
README 文档
README
Materialized path nesting for Harp ORM models.
What is Materialized path? Here's a great explanation: http://bojanz.wordpress.com/2014/04/25/storing-hierarchical-data-materialized-path/ This package does not implement the most advanced implementation, but it works quite well as is.
Usage
Add the Trait to your Model
use Harp\Harp\AbstractModel; use Harp\MP\MaterializedPathTrait; class Category extends AbstractModel { public static function initialize($config) { MaterializedPathTrait::initialize($config); // Other initializations // ... } }
Database Table:
┌─────────────────────────┐
│ Table: Category │
├─────────────┬───────────┤
│ id │ ingeter │
│ name │ string │
│ parentId* │ integer │
│ path* │ string │
└─────────────┴───────────┘
* Required fields
Methods
It will add "parent" and "children" Rels to the repo. The model will get the convenience methods:
| Method | Description |
|---|---|
| getParent() | Return the immidiate parent model |
| setParent(AbstractModel $parent) | Set the immidiate parent model, after save the changes are propogated to all the children |
| getChildren() | Get immidiate children. Returns a Models object |
| isRoot() | Boolean check if it is root (has parent) or not |
| getDescendants() | Returns all the children and the children's children. Models object |
| getAnsestors() | Return all the parents, including root. Models object |
| isDescendantOf(AbstractModel $parent) | Chech if a model is descendant |
| isAnsestorOf(AbstractModel $parent) | Chech if model is ansestor |
License
Copyright (c) 2014, Clippings Ltd. Developed by Ivan Kerin
Under BSD-3-Clause license, read LICENSE file.
统计信息
- 总下载量: 184
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2014-06-03