Laravel Datatables where does not exist

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?

Soruyu soralı baya zaman oldu hesap askıdaydı o yüzden yeni yayınlanmış :slight_smile: sorunu şu şekilde çözdüm geçen zamanda;

if(!empty($request->get('site'))){
$data= $data->where('S.Site', $request->get('site'));
 }

ekledim ve ->get() kaldırdım.

2 Beğeni