iatstuti / laravel-owns-models
一个简单的特性,用于与模型一起使用,以检查它们是否拥有其他模型。
1.0.0
2016-07-28 20:30 UTC
Requires
- php: >=5.4
- illuminate/database: ~5.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-09-06 14:33:02 UTC
README
v1.0.0
这是一个小的特性,允许你确定在使用模型中是否拥有其他模型。使用该特性可以轻松进行授权检查,例如确定某个用户是否有权访问其他模型。
安装
该特性通过 Composer 安装。要安装,只需将其添加到您的 composer.json
文件中
{
"require": {
"iatstuti/laravel-owns-models": "~1.0"
}
}
然后运行 composer 更新您的依赖项
$ composer update
为了使用此特性,将其导入您的 Eloquent 模型。然后您可以使用 owns
或 doesntOwn
方法来确定某个模型是否拥有另一个模型,基于每个模型的默认或显式键。
<?php use Iatstuti\Database\Support\OwnsModels; use Illuminate\Database\Eloquent\Model; class User extends Model { use OwnsModels; } class Post extends Model { } $user = User::find($user_id); $post = Post::find($post_id); if ($user->owns($post)) { // Continue execution } if ($user->doesntOwn($post)) { // Generate some authorisation error }
在 Laravel 5.2 之前,模型的主键以字符串形式返回。因此,此包默认进行宽松比较,以提供最大的版本兼容性。
如果您想在旧版本中进行严格比较,可以将您的主键字段添加到 $casts
属性中作为整数,并使用附加参数调用 owns
方法
$user->owns($post, null, true); $user->doesntOwn($post, null, true);
在此包的第一版发布时,我认为人们更有可能更改第二个($foreignKey
)参数,而不是显式设置第三个($strict
)参数。如果您有不同的看法,或有更好的处理方法,请与我联系!
支持
如果您对此包有任何一般性问题,请随时通过 Twitter 联系我。
如果您认为您发现了问题,请使用 GitHub 问题跟踪器 报告它,或者更好的是,分支存储库并提交拉取请求。
如果您正在使用此包,我很想听听您的想法。谢谢!