Я пытаюсь поместить свой каталог в кеш командой.Цена может варьироваться в зависимости от команды.Но если цена не установлена для продукта, мне нужно отправить «значение команды по умолчанию», и я не могу найти простой способ сделать это.
$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, но я не могу найти способ сделать это правильно. Они могут быть каким-то другим способом сделать это через модель Product или Price (и мутатор), но я также застрял здесь.
Спасибовы.