is it "trial" or "trail" on your users column??.
if its correct, can we see your migration or database schema ??
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Have a set of queries I would like to convert from raw to query builder but having issues when using parameter grouping:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.trail_ends_at' in 'where clause' (SQL: select campaigns.* from users inner join campaigns on users.id = campaigns.user_id inner join subscriptions on users.id = subscriptions.user_id where (users.trial_ends_at >= 2018-06-15 00:00:00 or users.trail_ends_at is null) and campaign.active = 1 and campaign.style = monthly and (subscriptions.trial_ends_at >= 2018-06-15 00:00:00 or subscriptions.trail_ends_at is null) and (subscriptions.ends_at >= 2018-06-15 00:00:00 or subscriptions.ends_at is null))
Query that works:
DB::select('select
c.*
FROM
users u,
subscriptions s,
campaigns c
WHERE
c.user_id = u.id
AND
s.user_id = u.id
AND
(u.trial_ends_at IS NULL OR u.trial_ends_at >= CURDATE() + :leadDays1)
AND
c.active > 0
AND
c.style = \'monthly\'
AND
(s.ends_at IS NULL OR s.ends_at >= CURDATE() + :leadDays2)
AND
(s.trial_ends_at IS NULL OR s.trial_ends_at >= CURDATE() + :leadDays3)
AND
c.send_on <= CURDATE() + :leadDays4
AND
MONTH(c.send_on) = MONTH(CURDATE() + :leadDays5)
AND
DAYOFMONTH(c.send_on) = DAYOFMONTH(CURDATE() + :leadDays6)',
[
'leadDays1' => $leadDays,
'leadDays2' => $leadDays,
'leadDays3' => $leadDays,
'leadDays4' => $leadDays,
'leadDays5' => $leadDays,
'leadDays6' => $leadDays
]
);
Query builder I get the error with:
$checkDate = Carbon::today()->addDays($leadDays);
return $campaigns = DB::table('users')
->join('campaigns', 'users.id', '=', 'campaigns.user_id')
->join('subscriptions', 'users.id', '=', 'subscriptions.user_id')
->select('campaigns.*')
->where(function ($query) use ($checkDate) {
return $query->where('users.trial_ends_at', '>=', $checkDate)
->orWhereNull('users.trail_ends_at');
})
->where('campaign.active', '=', 1)
->where( 'campaign.style', '=', $style)
->where(function ($query) use ($checkDate) {
return $query->where('subscriptions.trial_ends_at', '>=', $checkDate)
->orWhereNull('subscriptions.trail_ends_at');
})
->where(function ($query) use ($checkDate) {
return $query->where('subscriptions.ends_at', '>=', $checkDate)
->orWhereNull('subscriptions.ends_at');
});
Thank you in advance!
is it "trial" or "trail" on your users column??.
if its correct, can we see your migration or database schema ??
Please or to participate in this conversation.