php - 如何在 Laravel 5.2 中获得与外键的多对多关系?

标签 php mysql laravel eloquent laravel-5

我正在使用 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();

它正确返回所有数据。

最佳答案

将本地键添加到您的关联方法:

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

关于php - 如何在 Laravel 5.2 中获得与外键的多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39424094/

相关文章:

PHP函数列出所有对象的属性和方法

laravel - 为什么电子扩展被忽略

php - PHP 内连接问题

PHP 处理 fatal error ,并将它们存储在文件中

php - 无法通过 ajax 调用检索 $_POST 值

mysql - 如何在另一个表中缺少值后清理表?

php - 一次将值插入到多个 MySQL 表中

mysql - 如何将对象数组转换为表?

php - 大型 SQL 查询在 PHP 中占用的内存比 SQL 数据多 10 倍

php - Laravel 4 迁移抛出 1072 错误