繁体   English   中英

如何在Laravel 5.4中使用多重关系

[英]How to use Multiple relationship in laravel 5.4

在我的应用程序中,我定义了关系(配置文件,用户,级别),但是当我获取数据时,它显示了一个错误( Trying to get property 'email' of non-object ),我该如何提前解决此问题。

这是用户模型

public function profile()
{
     return $this->hasOne(Profile::class, 'user_id');
}

轮廓模型

public function user()
{
    return $this->belongsTo(User::class, 'id');
}
public function level()
{
   return $this->belongsTo(Level::class, 'id');
}

水平模型

public function profile()
{
  return $this->hasOne(Profile::class, 'level_id');
}

这是控制器ProfileController

$users = Profile::with(['user', 'level'])->where('is_bd_partner', 'Yes')->get();
        foreach ($users as $key => $value) 
        {
            echo $value->first_name.'<br>';
            echo $value->last_name.'<br>';
            echo $value->user->email.'<br>';
            echo $value->level->level.'<br>';
        }

请注意,belongsTo将foreign_key作为第一个参数。 因此,您应该将配置文件模型更改为

public function user()
{
    return $this->belongsTo(User::class, 'user_id');
}
public function level()
{
   return $this->belongsTo(Level::class, 'level_id');
}

在这里阅读更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM