首页 文章

如何在laravel 5.2中获得与外键的一对多关系?

提问于
浏览
1

我正在使用laravel 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

我对social_logins模型的关系设置为:

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();

它会正确返回所有数据 .

1 回答

  • 1

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

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

相关问题