запрос, который я написал, может в какой-то момент содержать пустые столбцы, в результате чего запрос возвращает пустой массив, даже если в таблице кампаний есть значение.Это вызвано тем, что запрос не может сделать join
, если значения столбца равны нулю.Я пытаюсь написать оператор if
для возврата campaign
, даже если его значения равны нулю, но он по-прежнему возвращает пустой массив.Если я запускаю запрос в операторе if
, он возвращает мне то, что я ищу, я просто не могу получить оператор if
для запуска.
public function getCampaigns(Request $request)
{
$authUser = auth()->user();
$business = $authUser['business_id'];
$query = campaigns::join('offers', 'campaigns.offer_id', '=', 'offers.id')
->join('conditionals', 'campaigns.conditional_id', '=', 'conditionals.id')
->join('triggers', 'campaigns.offer_id', '=', 'triggers.id')
->select('campaigns.*',
'triggers.name AS trigger_name',
'offers.name AS offer_name',
'offers.reward_amount as offer_reward_amount',
'offers.plaid_category_id as offer_plaid_id',
'conditionals.dollars_min',
'conditionals.dollars_max',
'conditionals.dollars_more',
'conditionals.xDays as days_since_last_purchase',
'conditionals.xDate as date_since_last_purchase',
'conditionals.xPercent as percentage_more',
'conditionals.xPurchases as purchases_x_times',
'conditionals.start_date',
'conditionals.end_date',
'conditionals.plaid_category_id')
// ->whereNull('campaigns.trigger_id', 'campaigns.offer_id', 'campaigns.conditional_id')
->where('campaigns.business_id', '=', $business);
if ($query->count() === 0){
$query = campaigns::select('*')->where('business_id', '=', $business);
}
return $query->get();
}