我正在尝试按团队将目录放入缓存。 价格可能因团队而异。 但是,如果未为产品设置价格,则需要发送“默认”团队价值”,并且找不到一种简便的方法。
$teams = Team::all();
foreach ($teams as $team) {
$teamId = $team->id;
$catalog = Cache::rememberForever('catalog-' . $team->id, function () use ($teamId) {
$catalog = Category::with(['products.prices' => function ($q) use ($teamId) {
$q->where("team_id", $teamId); // and if no result $q->where("team_id",1);
}])->all();
return $catalog;
});
}
我正在使用$ q-> whereNotExist之类的查询进行搜索,但找不到正确的方法。他们可能是通过“产品”或“价格”模型(以及增变器)执行此操作的另一种方法,但我也被困在这里。
谢谢。