У меня есть таблица subscriptions
со столбцами user_id
, date_from
, date_to
, plan
, status
. В блейд-файле есть только одно текстовое поле фильтра. Я хочу фильтровать по этим столбцам или по полям fname
, mname
, lname
из таблицы пользователей. Как правильно сделать это в красноречивом? Вот мой код.
$subscriptions = Subscription::where(function ($query) use ($q) {
$query->orWhere('plan', 'LIKE', '%' . $q . '%')
->orWhere('date_from', 'LIKE', '%' . $q . '%')
->orWhere('date_to', 'LIKE', '%' . $q . '%')
->orWhere('status', 'LIKE', '%' . $q . '%');
})->orWhereHas('user', function ($query2) use ($q) {
$query2->orWhere('fname', 'LIKE', '%' . $q . '%');
$query2->orWhere('mname', 'LIKE', '%' . $q . '%');
$query2->orWhere('lname', 'LIKE', '%' . $q . '%');
})->orderBy('id', 'desc')
->paginate(10)->appends('q', $q);