gpt4 book ai didi

orm - Eloquent 关系过滤

转载 作者:行者123 更新时间:2023-12-05 00:29:25 25 4
gpt4 key购买 nike

是否可以通过相关模型过滤 Laravel 的 Eloquent ORM 中的结果集?我知道 Eloquent 不连接表,但我想要的结果类似于:

SELECT * FROM tickets JOIN statuses on tickets.status_id = statuses.id WHERE statuses.name != 'Closed';



我在 Eloquent 中发现的最接近的功能是:
$tickets = Ticket::with(array('status' => function($q) {
return $q->where('name', '!=', 'Closed');
}))->get();

如果名称未关闭,这仍将返回所有票证,但仅返回状态关系。

另外,我知道这可以在 Fluent 中完成,但我想使用 Eloquent 提供的嵌套对象的返回结构:
echo ticket->status->name;

Fluent 会像连接查询一样返回扁平化的结果。

最佳答案

似乎这个问题很旧,但是如果您在这里寻找真正的答案,我们应该尽力避免过多地查询数据库,接受的答案做两次,但您可以通过一次完成这个

$tickets = Ticket::with('status')->whereHas('status', function($q) {
return $q->where('name', '!=', 'Closed');
})->get();

关于orm - Eloquent 关系过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17257275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com