如何搜索供应商名称?

时间:2018-11-15 18:57:48

标签: javascript laravel vue.js vuejs2 axios

我正在使用Laravel 5.7VueJs 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_nameticket_invoices中不存在。

我玩很多事情,但是没有成功...

便于更好理解的图像: enter image description here

2 个答案:

答案 0 :(得分:0)

您要尝试使用较低的级别,您需要查看vendor.vendor_company_name,您将跳过供应商部分。

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

答案 1 :(得分:0)

这是行不通的,因为我写了orWhere('vendor_company_name','LIKE',“%$ search%”),但是供应商是亲戚,我需要写最后一个orWhere,例如:

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