首页 > 解决方案 > 如何获得我的 Eloquent 模型的属性?

问题描述

我如何检查我的 Permission 模型的属性之一?我目前正在使用一个字符串来检查我的用户是否具有标题为 $permission 的权限。但我想用我的 Permission 模型中的属性的引用替换那个字符串 'title'。因此,当我更改权限模型中的属性时,它会在整个应用程序中发生变化。我也可以对属性使用常量并在迁移中使用它们,但我想知道是否有不使用常量的方法?

在我的用户模型中

public function hasPermission(string $permission)
{
    return $this->permissions->contains('title', $permission);
}

我的许可模型。我没有实现可填充,因为我只用播种机制作这些。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Permission extends Model
{
    const SUPER = 'super';
    const ADMIN = 'admin';
    const DEVELOPER = 'developer';
    const NONE = 'none';
    public static $types = [self::SUPER, self::ADMIN, self::DEVELOPER, self::NONE];
}

标签: laraveleloquent

解决方案


如果将来要更改该属性值,如何使用常量?为什么不在该模型上声明一个私有变量并将其用作属性作为参考。


推荐阅读