关于hasMany关系的Phalcon致命错误

时间:2016-10-12 14:59:40

标签: orm model entity-relationship phalcon has-many

我的ERD如下:

enter image description here

  

关系如下,   主机实体是一对一的   Portal的主机是一对多(一个主机到多个门户)

class Entity extends Model
{
    public function initialize()
    {
        $this->hasOne(
            "entity_id",
            "Host",
            "entity_id"
        );
    }
}

class Host extends Model
{
    public function initialize()
    {
        $this->belongsTo(
            "entity_id",
            "Host",
            "entity_id"
        );
        $this->hasMany(
            "host_id"
            "Portal",
            "host_id"
        );
    }
}
class Portal extends Model
{
    public function initialize()
    {
        $this->belongsTo(
            "portal_id",
            "Host,
            "portal_id"
        );
    }
}

当我尝试根据提供的实体ID数组检索门户列表时,我遇到了致命错误。

  

致命错误:调用未定义的方法   多尔康\的mvc \模型\结果集\简单::和getHost()

这是我的控制器代码,用于检索门户

$hostObj = Host::find(['entity_id IN ({ids:array})',
             'bind' => array('ids' => $entity_id)]);

if($hostObj)
{
    $portals = $hostObj->Portal;
}

基本上,目标是根据提供的entity_id数组检索门户列表。但我真的很想知道,我的模型关系是否会导致致命错误。

1 个答案:

答案 0 :(得分:-1)

Find方法返回Resultset,您需要使用findFirst或从Resultset中选择行(如类似数组的样式$portals[0],或$portals->getFirst()或{{1} }