为什么我无法在laravel 5.5中使用一对多关系检索数据

时间:2018-02-19 17:57:24

标签: php laravel eloquent laravel-5.5

我正在尝试从我的数据库返回数据,我希望它包含来自相关表的数据。这是一对多的关系。但是,我得到的只是一个错误

  

此集合实例上不存在属性[用户]。

在我的用户模型中,我有

//App\User.php
class User extends Authenticatable{
    use Notifiable;

    public function systems(){
        return $this->hasMany(\App\Models\General\systems::class,'added_by','id');
   }

另一个模型,我称之为系统

//App\Models\General\systems.php
class systems extends Model
{
    public function User(){
        return $this->belongsTo(\App\User::class,'added_by','id');
}

在我的控制器中我有

$this->systemsObject = new \App\Model\General\systems();

$systems = $this->systemsObject->get()->User;

根据Laravel文档,这应该有效,但它不是。我试过反转外键/本地键参数。我将 - > User大写,小写。

我不知道我做错了什么

1 个答案:

答案 0 :(得分:1)

您需要遍历collection,例如:

$systems = $this->systemsObject->get();
foreach ($systems as $system) {
    echo $system->User->name;
}