我的ERD如下:
关系如下, 主机实体是一对一的 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数组检索门户列表。但我真的很想知道,我的模型关系是否会导致致命错误。
答案 0 :(得分:-1)
Find方法返回Resultset,您需要使用findFirst
或从Resultset
中选择行(如类似数组的样式$portals[0]
,或$portals->getFirst()
或{{1} }