创新 / laravel-所有者
此包已被废弃,不再维护。未建议替代包。
允许 Eloquent 模型相互拥有。支持多对多关系。
dev-master
2018-02-02 20:56 UTC
Requires
- inventive/laravel-owner: dev-master
This package is not auto-updated.
Last update: 2024-01-02 14:36:42 UTC
README
Laravel 所有者
一个简单的包,允许 Eloquent 模型“拥有”彼此,或被其他模型“拥有”。支持多对多关系。
示例可能包括
- 一个用户拥有一个博客文章
- 一个用户和团队共同拥有多个文件
- 记录被多个组织拥有
安装
使用 composer 安装
composer require inventive/laravel-owner=dev-master
将以下内容添加到 config/app.php
Inventive\LaravelOwner\OwnerServiceProvider::class,
发布迁移和配置文件
php artisan vendor:publish
运行迁移
php artisan migrate
为你的 Eloquent 模型添加必要的特性
如果模型可以是一个所有者
use Inventive\LaravelOwner\Traits\Owns; class User extends Model { use Owns; }
如果模型可以被其他模型拥有
use Inventive\LaravelOwner\Traits\HasOwner; class Resource extends Model { use HasOwner; }
用法
"所有者"模型
创建一个拥有关系
$user->own($model);
移除一个拥有关系
$user->disown($model);
返回父模型所拥有的所有模型集合
$user->owns();
用户是否拥有此模型?
$user->ownsModel($model);
父模型拥有哪种类型的模型?此方法可以接受一个子模型,或一个命名空间类名。
$user->ownsModelType($model); // Use a model $user->ownsModelType(‘App\Resource’); // Use class name
"被拥有"模型
返回所有拥有该模型的模型集合
$model->owners();
模型是否被其他模型拥有?
$model->isOwnedBy($owner);
向模型添加一个拥有者
$model->addOwner($owner);
从模型中移除一个拥有者
$model->removeOwner($owner);
许可证
MIT