返回错误/空数据的关系(Laravel 5.2)

时间:2016-06-30 00:11:09

标签: php mysql laravel-5 relationships

得到domain table One To Many relationship domain_hosts_tableserver_hosts_tablesystems_table。到目前为止一切都很好。

调用表格数据:

$domains = Domain::with('domain_host', 'server_host', 'system')->get();

模型:

public function domain_host()
{
    return $this->hasOne('App\DomainHost', 'id');
}

public function server_host()
{
    return $this->hasOne('App\ServerHost', 'id');
}

public function system()
{
    return $this->hasOne('App\System', 'id');
}

DomainHost ServerHost 系统模型:

public function domains()
{
    return $this->hasMany('App\Domain');
}

表:

enter image description here

到目前为止一切顺利。

让我们看看这个特定的表在foreached时返回的内容。

enter image description here

前两行应该是相同的(基于它们的ID),前两行之后的所有行都是空的。

dd获取的数据,注意第4个对象的关系是空的,第1个对象实际上有数据。)

enter image description here

1 个答案:

答案 0 :(得分:0)

在定义我的关系时必须定义另一个参数:

public function domain_host()
{
    return $this->hasOne('App\DomainHost', 'id', 'domain_host_id');
}

public function server_host()
{
    return $this->hasOne('App\ServerHost', 'id', 'server_host_id');
}

public function system()
{
    return $this->hasOne('App\System', 'id', 'system_id');
}

它正在寻找另一个表中当前行的ID。