i got the result from this query:
$loan=Loan::where('user_id',auth()->user()->id)->with('customer')->orderByDesc('created_at')->paginate(10);
BUt when i try to retrive same data as:
$loan = Loan::where('user_id', auth()->user()->id)->with(['customer'=> function ($query) use($search){
$query->where('cname', $search);
}])->orderByDesc('created_at')->get();
與客戶查詢退貨集合。
通過錯誤為:在刀片視圖上遵循代碼后嘗試在 null 上讀取屬性
@forelse ($loan as $loans)
<tr>
<td>{{ $loans->customer->cname }}</td>
<tr>
@endforeach
uj5u.com熱心網友回復:
所以基本上你正在查詢從客戶表中過濾掉的那些客戶記錄。要解決此問題,請從 Loan 模型中過濾掉您的子查詢(即客戶)與搜索條件不匹配的所有記錄。
$loan = Loan::where('user_id', auth()->user()->id)->with(['customer'=> function ($query) use($search){
$query->where('cname', $search);
}])
->whereHas('customer', function($query) use($search){
$query->where('cname', $search);
})
->orderByDesc('created_at')->get();
uj5u.com熱心網友回復:
您可以使用 ->whereHas('customer', function()
https://laravel.com/docs/9.x/eloquent-relationships#querying-relationship-existence
你仍然會保留 ->with('customer')->whereHas('customer',
您將 ->with( 保留為 eagerload,但使用 whereHas 過濾
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/430330.html
