Использование where в связанных столбцах в качестве псевдонима - laravel - PullRequest
0 голосов
/ 27 марта 2020

В моем приложении есть таблица данных, где пользователь может фильтровать строки по полям ввода, таким как идентификатор, дата, стоимость заказа и адрес клиента. У меня проблема с последним столбцом, который содержит адрес клиента. В базе данных данные хранятся в виде нескольких столбцов:

firstname
lastname
address1
postcode
city

enter image description here enter image description here

И работник может ввести любую из этих данных в поле ввода. Поэтому, когда я фильтрую базу данных, мне нужно проверять любое поле на совпадение. Работник также может написать строку типа «Джон Доу», и запрос должен будет проверить соответствие в более чем одном столбце. Итак, я нашел небольшое решение для поиска и объединил все поля в одно. И теперь мне нужно использовать где на псевдоним. Проблема заключается в том, что, где выдает ошибку, что столбец не найден (псевдоним), также я пытался использовать $ 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 с данной строкой от пользователя (также объединенной, без пробелов). Можно ли запросить псевдоним?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...