查询: 在邮递员的 whereHas 处返回,但表中有数据。拉拉维尔
Posted
技术标签:
【中文标题】查询: 在邮递员的 whereHas 处返回,但表中有数据。拉拉维尔【英文标题】:query: return at whereHas in postman but data there is in table. Laravel查询: 在邮递员的 whereHas 处返回,但表中有数据。拉拉维尔 【发布时间】:2020-03-26 22:20:57 【问题描述】:在 CitizenService 中有 service_id 但此查询在邮递员中返回查询:。在模型连接的服务()中;
$query = CitizenService::whereHas('service', function (Builder $query)
$query->where('service.id', 1);
);
return response()->json(['query' => $query]);
【问题讨论】:
【参考方案1】:您需要在 where() 子句中使用id
而不是service.id
。
你可以试试这个:
$query = CitizenService::whereHas('service', function (Builder $query)
$query->where('id', 1);
);
return response()->json(['query' => $query]);
【讨论】:
【参考方案2】:您需要实际执行查询。您已经构建了一个查询,但尚未运行它。
$result = $query->get();
或使用您的代码:
$query = CitizenService::whereHas('service', function ($query)
$query->where('service.id', 1);
)->get();
return response()->json(['query' => $query]);
你不需要对闭包的参数进行类型提示,但如果你确定它是Illuminate\Database\Eloquent\Builder
。
【讨论】:
那么你必须弄清楚那个错误是什么......你没有执行你的查询,你只是返回一个查询生成器而不是结果【参考方案3】:好像你正在返回一个查询生成器
看看这个
$query = CitizenService::whereHas('service', function ($query)
$query->where('id', 1);
)->get();
return response()->json(['query' => $query]);
确保你定义了正确的关系
更多信息querying on relationship
【讨论】:
以上是关于查询: 在邮递员的 whereHas 处返回,但表中有数据。拉拉维尔的主要内容,如果未能解决你的问题,请参考以下文章
为啥 dapper 在进行选择时为 Guid 返回全零但表中的 guid 值设置正确?
我的 postgresql 查询在终端返回 10 行,但邮递员显示错误