首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Eloquent查询相关记录

使用Eloquent查询相关记录
EN

Stack Overflow用户
提问于 2019-02-06 00:58:33
回答 1查看 19关注 0票数 0

所以我有两个数据库:-塔站点列表。-这些站点上的接入点列表。(有些网站没有接入点)。

假设我有sites (ABC),它有site_id of 123

Site A3接入点,B4C0

所以我想要一个只返回有访问点的站点的表。所以应该只返回A和B。

我为每个人都有一个模型,有他们的所有信息,并通过ID在网站和site_id在AccessPoints链接他们。

使用Eloquent运行什么查询比较好?

现在我正在运行:

代码语言:javascript
复制
$sites = Sites::with(['AccessPoints' => function($query) { 
$query->where('status', '=', 'production');
}])
->with('AccessPoints.Associations')
->orderBy('name', 'asc')
->get();

只是为了给你一些启示。production状态告诉数据库访问点是否仍然存在以及是否正在使用。所以生产意味着它仍然存在。因此,任何没有生产状态的访问点的站点都不应该显示。

with(AccessPoints.Associations)是第二个查询,它链接第三个表,以获得使用每个正常工作的接入点的人数。但是查询的第一部分并不是这样的,我仍然得到了一些aps已经退役或者根本没有aps的站点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-06 01:21:54

您当前的查询将为您提供所有访问点,因为您没有has条件。下面会给出你想要的结果:

代码语言:javascript
复制
<?php 

$sites = Sites::whereHas('AccessPoints', function($q){
    $q->where('status', '=', 'production');
})
->with('AccessPoints.Associations')
->orderBy('name', 'asc')
->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54539463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档