Как искать с именем поставщика?

Я использую Laravel 5.7 & VueJs 2.5.* ...

У меня есть таблица со счетами в ней и счет-фактура связана с поставщиком, поэтому я также отобразил имя поставщика в таблице, я использую функцию поиска, которая работает при поиске номера счета, но когда я хочу искать у поставщика имя, его не работает.

я сделал что-то вроде этого:

Я СДЕЛАЛ ЭТО В СКРИПТЕ

 mounted() { Fire.$on("searching", () => { let query = this.$parent.search; axios .get("api/findVTI?q=" + query) .then(data => { this.ticketInvoices = data.data; }) .catch(); }); 

Я СДЕЛАЛ МАРШРУТ

 Route::get('findVTI', 'APITicketInvoiceController@searchVTI'); 

В МОИ КОНТРОЛЛЕРОМ С СЧЕТОМ Я СКАЗАЛ ЭТО

  public function searchVTI() { if($search = Request::get('q')){ $VTI = TicketInvoice::where(function($query) use ($search){ $query->where('ticket_invoice_no','LIKE',"%$search%") ->orWhere('ticket_invoice_grand_total','LIKE',"%$search%") ->orWhere('vendor_company_name','LIKE',"%$search%"); })->paginate(10); }else{ return TicketInvoice::paginate(10); } return $VTI; } 

Когда я пишу эту строку: ->orWhere('vendor_company_name','LIKE',"%$search%"); Я получил сообщение об ошибке в консоли, что имя vendor_company_name не существует в ticket_invoices .

Я играю со многими вещами, но не добился успеха ...

Изображение для лучшего понимания: введите описание изображения здесь

Всего 2 ответа


Вы пытаетесь перейти на более низкий уровень, вам нужно посмотреть на vendor.vendor_company_name, по которому вы пропускаете часть поставщика.

->orWhere('vendor.vendor_company_name','LIKE',"%$search%");

Он не работает, потому что я пишу orWhere («vendor_company_name», «LIKE», «% $ search%»), но поставщик - это отношения, и мне нужно написать вместо этого последнее или где-то вроде:

 ->orWhereHas('vendor', function($query) use ($search){ $query->where('vendor_company_name', 'LIKE', "%{$search}%"); }); 

Есть идеи?

10000