我用的是拉维5.2。我的数据库设置为:

social_logins
ID |   social_id  | provider
-----------------------------
 1 |      x      | twitter
 2 |      y      | facebook
 3 |      z      | twitter

twitter_data
ID |   social_id  | some_value
-------------------------------
 1 |      x      | 100
 2 |      y      | 200
 3 |      z      | 100

我的社交登录模型关系设置为:
 public function twitterData()
    {
        return $this->hasMany('App\Models\TwitterData', 'social_id');
    }

我想用表中的social_id外键检索所有twitter数据。到目前为止我试过:
$socialLogin = Social::find($id);
dd($socialLogin->twitterCounts);

但是当我试着这样做的时候我只得到一个空的收藏
Collection {#346 ▼
  #items: []
}

如何检索与laravel 5.2中外键的一对多关系?
当我手动执行此操作时,请注意:
TwitterData::where('social_id', $socialLogin->social_id)->get();

它正确地返回所有数据。

最佳答案

将本地密钥添加到关系方法:

public function twitterData()
    {
        return $this->hasMany('App\Models\TwitterData', 'social_id','social_id');
    }

07-28 05:50