laravel eloquent如何在单个查询中从table1获取所有数据并附加来自table2的行数

时间:2019-05-31 14:59:38

标签: php laravel-5 eloquent

我正在使用Laravel 5.8,并且我有2个表(一对多),如下所示:

联系人数据库

  • id
  • 名称
  • 号码

发送数据库

  • id
  • user_id
  • 文本
  • 时间

我要实现的是通过将Contacts.id与Send.user_id匹配,将所有(联系人)的列表以及与该(联系人)相关的(发送)数量。

这是我要查询的结果:

查询结果:

  • id
  • 名称
  • 号码
  • 发送次数

谢谢:)

2 个答案:

答案 0 :(得分:0)

您需要设置模型关系

将以下内容添加到您的Contact模型中:

public function sends()
{
    return $this->hasMany('App\Send', 'user_id'); //Assuming Send Model is directly in app folder
}

然后只需获取您的信息:

$contact = Contact::withCount('sends')->get();

答案 1 :(得分:0)

像魅力一样工作! 我做了调整以使其返回信号(接触)

Contact::where('id', $id)->withCount('sends')->get();

这是(Jonathan K)建议的另一种方式

Contact::where('id', $id)->withCount('sends')->first();

谢谢Jonathan K