douyu5679
2016-05-26 16:30
浏览 91
已采纳

Laravel 5.2 Eloquent ORM hasManyThrough

In my laravel 5.2 web app I have the following three tables-

users

id
username

profiles

id
user_id

profile_images

id
profile_id

To outline my scenario- a user can have one profile (one-to-one) and a profile can have many profile images (one-to-many). The models for these tables with the relevant relationship functions are-

User.php

public function profile_images(){
    $this->hasManyThrough('App\ProfileImage', 'App\Profile');
}
public function profile(){
    return $this->hasOne('App\Profile');
}

Profile.php

 public function profile_images()
{
  return $this->hasMany('App\ProfileImage');
}
public function user()
{
    return $this->belongsTo('App\User');
}

ProfileImage.php

    public function profile()
{
    return $this->belongsTo('App\Profile');
}

My Problem When I call profile_images() on the User model I only get the user data and only column names back for the profiles and profile_images. No attributes/data are returned even though I have a profile (with matching user_id to my test case) and two profile_images with matching profile_id.

Can you help? I'm assuming it's a problem with my hasManyThrough usage.

Thanks

图片转代码服务由CSDN问答提供 功能建议

在我的laravel 5.2 web应用程序中,我有以下三个表 -

用户

 <代码> ID 
用户名
   
 
 

<强>简档

 <代码> ID 
user_id 
   
 
 

<强> profile_images

  id 
profile_id 
   
 
 

概述我的场景 - 用户可以有一个配置文件(一对一),配置文件可以有很多 个人资料图片(一对多)。 具有相关关系函数的这些表的模型是 -

User.php

  public function profile_images  (){
 $ this-&gt; hasManyThrough('App \ ProfileImage','App \ Profile'); 
} 
公共函数profile(){
返回$ this-&gt; hasOne('App \ Profile')  ); 
} 
   
 
 

Profile.php

  public function profile_images(  )
 {
返回$ this-&gt; hasMany('App \ ProfileImage'); 
} 
公共函数user()
 {
返回$ this-&gt; belongsTo('App \ User');  
} 
   
 
 

ProfileImage.php

 公共功能配置文件()\  n {
返回$ this-&gt; belongsTo('App \ Profile'); 
} 
   
 
 

我的问题 当 我在User模型上调用profile_images()我只获取用户数据,只返回配置文件和profile_images的列名。 即使我有一个配置文件(我的测试用例匹配user_id)和两个profile_images匹配的profile_id,也没有返回任何属性/数据。

你能帮忙吗? 我假设我的hasManyThrough用法存在问题。

谢谢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题