Как искать с именем поставщика, а? - PullRequest
0 голосов
/ 15 ноября 2018

Я использую 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', 'API\TicketInvoiceController@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.

Я много играю, но у меня ничего не получилось ...

Изображение для лучшего понимания: enter image description here

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

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

->orWhereHas('vendor', function($query) use ($search){
    $query->where('vendor_company_name', 'LIKE', "%{$search}%");
});
0 голосов
/ 15 ноября 2018

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

->orWhere('vendor.vendor_company_name','LIKE',"%$search%");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...