我正在使用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
中不存在。
我玩很多事情,但是没有成功...
答案 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}%");
});