Merhabalar laravelde yeniyim,
Yajra Datatables ile bir dropdown filtresi oluşturmaya çalışıyorum, controller fonksiyonum şu şekilde;
public function filtre(Request $request)
{
if ($request->ajax()) {
$data = DB::table('orderItems as SS')
->select(DB::raw('SS.barcode,
MAX(SS.productName) as productName,
SUM(SS.quantity) as quantity,
COALESCE(NULLIF(MAX(B.salePrice),0), MAX(B.regularPrice)) as unitPrice))
->leftJoin('products as B','SS.barcode', '=', 'B.barcode')
->leftJoin('orders as S', 'SS.orderID', '=', 'S.ID')
->groupBy('SS.barcode')
->get();
//$data = DB::table("orders")->select("*")->limit("1000"); Satır 13!
return Datatables::of($data)
->addIndexColumn()
->filter(function ($instance) use ($request) {
if ($request->get('site') == '1' || $request->get('site') == '2' || $request->get('site') == '3') {
$instance->where('S.site', $request->get('site'));
}
})->make(true);
}
return view('filtre');
}
blade’deki scriptim şu şekilde;
<script type="text/javascript">
$(function () {
var table = $('.data-table').DataTable({
processing: true,
serverSide: true,
ajax: {
url: "{{ route('filtre') }}",
data: function (d) {
d.site = $('#site').val();
}
},
columns: [
{ "render": function (data, type, JsonResultRow, meta) { return '<img width="50" src="https://www.siteadi.com/Data/K/'+JsonResultRow.ImagePath+'">';}, searchable: false},
{data: 'Barkod', name: 'Barkod'},
{data: 'MalzemeAdi', name: 'MalzemeAdi'},
{data: 'Miktar', name: 'Miktar', searchable: false},
{data: 'BirimFiyat', name: 'BirimFiyat', searchable: false},
{data: 'Gelir', name: 'Gelir', searchable: false},
],
"order": [[3, "desc"]]
});
$('#site').change(function(){
table.draw();
});
});
</script>
Dropdown’dan site id seçtiğimde şöyle bir hata alıyorum;
DataTables warning:table id=DataTables_Table_0 - Exception Message:
Method Yajra\DataTables\CollectionDataTable::where does not exist.
Bir süre araştırdım genelde sorgunuzdan ->get() ’i kaldırın demişler ama o olmayınca bu sorgu hata veriyor tabiki, 13. satırda ->get() ’siz bir basit kullanım yaptım onda çalışyor filtre! Yardımcı olabilir misiniz?