В моем приложении есть таблица данных, где пользователь может фильтровать строки по полям ввода, таким как идентификатор, дата, стоимость заказа и адрес клиента. У меня проблема с последним столбцом, который содержит адрес клиента. В базе данных данные хранятся в виде нескольких столбцов:
firstname
lastname
address1
postcode
city
И работник может ввести любую из этих данных в поле ввода. Поэтому, когда я фильтрую базу данных, мне нужно проверять любое поле на совпадение. Работник также может написать строку типа «Джон Доу», и запрос должен будет проверить соответствие в более чем одном столбце. Итак, я нашел небольшое решение для поиска и объединил все поля в одно. И теперь мне нужно использовать где на псевдоним. Проблема заключается в том, что, где выдает ошибку, что столбец не найден (псевдоним), также я пытался использовать $ query-> безуспешно (без ошибок, но также не отфильтрован).
Вот мой код:
$orders = Order::select('some_not_important_fields')
->with(['shippingAddress' => function ($sa) {
$sa->select('id', 'lastname', 'firstname', 'address1', 'postcode', 'city', 'email',
\DB::raw('CONCAT(lastname,firstname,address1,postcode,city,email) as shipping_text'));
}]);
$result = $orders->paginate($itemNumber, ['*'], 'page', $page);
Поэтому я хотел бы сравнить псевдоним shipping_text с данной строкой от пользователя (также объединенной, без пробелов). Можно ли запросить псевдоним?