iatstuti/laravel-owns-models

一个简单的特性,用于与模型一起使用,以检查它们是否拥有其他模型。

安装次数: 1,329

依赖者: 0

建议者: 0

安全: 0

星标: 15

观察者: 3

分支: 0

开放问题: 0

类型:实用工具

1.0.0 2016-07-28 20:30 UTC

This package is auto-updated.

Last update: 2024-09-06 14:33:02 UTC


README

v1.0.0

Travis Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads License

这是一个小的特性,允许你确定在使用模型中是否拥有其他模型。使用该特性可以轻松进行授权检查,例如确定某个用户是否有权访问其他模型。

安装

该特性通过 Composer 安装。要安装,只需将其添加到您的 composer.json 文件中

{
    "require": {
        "iatstuti/laravel-owns-models": "~1.0"
    }
}

然后运行 composer 更新您的依赖项

$ composer update

为了使用此特性,将其导入您的 Eloquent 模型。然后您可以使用 ownsdoesntOwn 方法来确定某个模型是否拥有另一个模型,基于每个模型的默认或显式键。

<?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 问题跟踪器 报告它,或者更好的是,分支存储库并提交拉取请求。

如果您正在使用此包,我很想听听您的想法。谢谢!