【问题标题】:ORM issue - UNDEFINED PROPERTYORM 问题 - 未定义的属性
【发布时间】:2021-02-22 09:13:01
【问题描述】:

我有三个具有这些关系的模型:

权限:

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_permission");
    $this->belongsTo('idAction', Action::class, 'id', ['alias' => 'Action']);
}

行动:

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_action");
    $this->belongsTo('idResource', Resource::class, 'id', ['alias' => 'Resource']);
    $this->hasMany('id', Permission::class, 'idAction', ['alias' => 'Permission']);
}

资源:

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_resource");
    $this->hasMany('id',Action::class,'idResource', ['alias' => 'Action']);
}

我想要所有资源诽谤:​​

public static function isAllowed($role){
    $resources = [];
    $permission = Permission::find('idRole ='.$role.' AND isAllowed = 1');
    foreach ($permission->action->resource as $resource){
        array_push($resources, $resource->getLibelle());
    }
    return $resources;
}

它在 apache 错误日志中返回:

Undefined property: Phalcon\Mvc\Model\Resultset\Simple::$action

Trying to get property 'resource' of non-object

Invalid argument supplied for foreach()

This is the uml class diagram:

我尝试将别名以小写和大写形式使用,参考模型带有 Permission::class 或“Security\Permission”或“Permission”。我在 loader.php 中设置了安全命名空间。

提前致谢。

【问题讨论】:

    标签: orm phalcon relation phalcon-orm


    【解决方案1】:

    我尝试使用 Permission::find 查找权限,它是 ResultSet 的一个实例。为了解决这个问题,我使用了 findFirst,它是 Permission 的一个实例。

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 2021-10-31
      • 2020-05-09
      相关资源
      最近更新 更多