创新/laravel-所有者

此包已被废弃,不再维护。未建议替代包。

允许 Eloquent 模型相互拥有。支持多对多关系。

dev-master 2018-02-02 20:56 UTC

This package is not auto-updated.

Last update: 2024-01-02 14:36:42 UTC


README

Laravel Owner

Laravel 所有者

一个简单的包,允许 Eloquent 模型“拥有”彼此,或被其他模型“拥有”。支持多对多关系。

示例可能包括

  1. 一个用户拥有一个博客文章
  2. 一个用户和团队共同拥有多个文件
  3. 记录被多个组织拥有

安装

使用 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