【问题标题】:How to get one->many relationship with a foreign key in laravel 5.2?如何在 laravel 5.2 中与外键建立一个->多个关系?
【发布时间】:2017-01-18 08:14:47
【问题描述】:

我正在使用 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 的所有推特数据。到目前为止,我已经尝试过:

$socialLogin = Social::find($id);
dd($socialLogin->twitterCounts);

但是当我尝试这个时,我得到一个空集合

Collection {#346 ▼
  #items: []
}

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

请注意,当我使用以下方式手动执行此操作时:

TwitterData::where('social_id', $socialLogin->social_id)->get();

它正确返回所有数据。

【问题讨论】:

    标签: php mysql laravel eloquent laravel-5.2


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。没有意识到你必须这样做。
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多