laravel: datatable не показывает никаких данных - PullRequest
1 голос
/ 13 июля 2020

Я создаю таблицу данных, в которой я извлекаю данные из других таблиц (город, торговая точка, жалоба, покупатель) с помощью отношения «принадлежность», когда я запускаю свой код, он не показывает никакого ответа и ошибок нет. пожалуйста, может кто-нибудь указать, что я делаю не так

это мой сценарий

<script>
    $(function() {
        let submit = document.getElementById('submitReport');
        let table = undefined;
        $.fn.dataTable.ext.errMode ='none';
        let columns = [
            {'data' : 'city_name',        'name' : 'City Name'},
            {'data' : 'outlet_id',        'name' : 'Outlet'},
            {'data' : 'complain_id',      'name' : 'Complain #'},
            {'data' : 'issue_id',         'name' : 'Complain Type'},
            {'data' : 'customer_name',    'name' : 'Customer Name'},
            {'data' : 'customer_number',  'name' : 'Customer #'},
            {'data' : 'ticket_status_id', 'name' : 'Status'},
            {'data' : 'category',         'name' : 'Category'},
        ];

        submit.onsubmit = (e) => {
            debugger;
            e.preventDefault();
            $("#collapseOne").removeClass('show');
            let paginate = document.getElementById("paginate").value;
            table = $("#datatable").DataTable({
                processing: true,
                serverSide: true,
                destroy: true,
                ajax: {
                    url: "{!! route('report.cityreport.post') !!}",
                    method: "post",
                    data: {
                        complain_id: document.getElementbyID("complain_id").value,
                        customer_name: document.getElementById("customer_name").value,
                        outlet_id: $("#outlet_id").val(),
                    }
                   
                },
                dom: 'Bfrtip',
                buttons: [
                    'colvis', 'pageLength','copy', 'csv', 'excel', 'pdf', 'print',
                ],
                order: [[8, 'desc']],
                columns: columns,
                responsive: true,
                pageLength: paginate === "All" ? -1 : parseInt(document.getElementById("paginate").value),
                lengthMenu: [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]]
            });

            table.on("error.dt", (e, settings, techNote, message) => {
                toastr.error(message);
            });
        }
    });
</script>

код контроллера

 public function report(Request $request){
   //dd($request);

   $cityreport = $request->city_name;
   
   $outlets = Outlet::query()->whereIn('city', $request->city_name)->get();
  
   $complains = Complain::query()->where('id', $outlets )->get();

   $customer = Customer::query()->whereIn('id',$complains)->get();
    
    
    if($request->ajax()) {
      return DataTables::of($query->get())
        ->addcolumn('city_name', '{{$city_name}}')

        ->editColumn('outlet_id', function (CityReport $cityreport) {
            return $cityreport->outlet->name;
        })
        
        ->editColumn('complain_id', function (CityReport $cityreport) {
            return $cityreport->complain->id;
        })

        ->editColumn('customer_name', function (CityReport $cityreport) {
            return $cityreport->customer->name;
        })
        ->editColumn('customer_number', function (CityWise $cityreport) {
            return $cityreport->customer->number;
        })
        ->editColumn('issue_id', function (CityReport $cityreport) {
            return view('architect.datatables.issues', ['issues' => $cityreport->issues]);
        })
        ->addColumn('category', function (CityReport $cityreport) {
            return $cityreport->issues()->first()->category->name;
        })
        ->editColumn('ticket_status_id', function (CityReport $cityreport) {
            return view('architect.datatables.status', ['status' => $cityreport->ticket_status->name]);
        })
        ->rawColumns(['ticket_status_id', 'issue_id'])
        ->toJson()
        ->make(true);
    }
    else {
        return response()->json([], 401);
    }

код модели

class CityReport extends Model
{
    protected $table = 'city_name';

public function outlet()
{
    return $this->belongsTo('App\Outlet');
}

public function complain()
{
    return $this->belongsTo('App\Complain');
}

public function customer()
{
    return $this->belongsTo('App\Customer');
}

public function category()
{
    return $this->belongsTo('App\Category');
}

public function ticket_status()
{
    return $this->belongsTo('App\TicketStatus', 'ticket_status_id', 'id');
}

public function issues()
{
    return $this->belongsToMany('App\Issue', 'complain_issue');
}
}
...