Я хочу заказать запрос (из таблицы revenues
) по столбцу отношения ('orders.number').Один заказ имеет много доходов.Проблема заключается в том, что и выручка, и заказы имеют общий столбец (description
), что приводит к неоднозначности при фильтрации по where()
.Я знаю, что могу указать таблицы при фильтрации, но проблема здесь в том, что я использую глобальную область, которая упорядочивает запрос по заданным столбцам в файле конфигурации, и description
является одной из них.Ранее я не мог знать имя таблицы, и отправка его в качестве параметра в функцию для меня кажется излишним.
$revenues = App\Revenue::
with('order.client', 'order.place')
->sessionSearch('revenues')
->orderBy('created_at', 'desc')
->join('orders', 'orders.id', '=', 'revenues.order_id')
->select('revenues.*', 'orders.number as order_number')
->orderBy('order_number', 'desc')
->paginate(perPage());
Я попытался динамически добавить имя таблицы в методе sessionSearch()
, но яне смог получить к нему доступ через переданный экземпляр Builder
, потому что он был защищен.
Я также подумал, что при выполнении leftJoin
mysql узнает, какая у меня главная таблица, и предположительно нацелится на ее столбцы, но неоднозначностьвсе еще проблема.
Есть ли способ, которым я могу установить подходящую таблицу по умолчанию в моих настройках sql, чтобы не возникала двусмысленность?В основном мне нужен только номер из таблицы заказов, но ошибка неоднозначности все еще выдается.
Заранее спасибо за любую помощь!