我正在使这段代码正常工作aapt dump badging mobile_app.apk
aapt dump badging wear_app.apk
已更改为以下代码,以便更灵活,更了解我想要做的事情:
$sector = Sector::where('ref_id', $sectorId)->with('offers.provider')->first();
所以我们在这里$sector = Sector::where('ref_id', '$sectorId')
->with(
[
'offers' => function($query) {
$query->with(
[
'provider' => function($query) {
$query->select('name');
}
]
);
}
]
)
->first();
,sector
指向此offers
,并在每个sector
下,我们正在接收链接的offer
。现在,provider
的{{1}}为providers
或status
。因此,根据我上面的代码,是否有办法只检索0
1
,其状态为offers
?
请帮我解决这个问题。
答案 0 :(得分:0)
您是否尝试在提供程序查询中添加where子句以仅提取状态为1?
的提供程序'provider' => function($query) {
$query->select('name')->where('status', 1);
}
编辑:我不是Laravel的专家,但也许我遇到问题的一个例子可能会对你的问题有所了解:
$dealer = $this->dealer->where('foreign_dealer_id', $dealerIdInFeed)
->where(function ($subQuery) use ($accountTypes) {
if(count($accountTypes) > 1)
{
foreach($accountTypes as $accountType)
{
$subQuery->orWhere('account_type', $accountType);
}
}
else
{
$subQuery->orWhere('account_type', $accountTypes);
}
})
->first();
答案 1 :(得分:0)
您可以使用whereHas - 专门设计用于此类方案。文档中的示例:
如果您需要更多功能,可以使用whereHas和orWhereHas方法将“where”条件放在您的查询上。这些方法允许您向关系约束添加自定义约束,例如检查注释的内容:
// Retrieve all posts with at least one comment containing words like foo%
$posts = Post::whereHas('comments', function ($query) {
$query->where('content', 'like', 'foo%');
})->get();
不要让代码片段欺骗你,它会在closure
内完全正常工作。