Laravel DataTable不显示数据

时间:2017-09-07 07:50:55

标签: php ajax laravel datatables

我试图在我的Laravel应用中显示一些数据,但出于某种原因,它无法正常显示。我正在使用这个包:https://github.com/yajra/laravel-datatables

<table class="table table-bordered table-striped" id="best-sold-table-sort">
    <thead>
        <tr>
            <th>{{ trans('labels.backend.table.store.best_sold.product') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.revenue') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.sold') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.discount') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.price_excl') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.price_incl') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.margin') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.profit') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.roas') }}</th>
            <th>{{ trans('labels.backend.table.store.best_sold.exclude_reason') }}</th>
        </tr>
    </thead>
    <tbody class="show-when-sibling-is-empty">
        <tr>
            <td colspan="10"><em>{{ trans('strings.backend.stores.tables.no_products') }}</em></td>
        </tr>
    </tbody>
</table>

这是正在填写的表格。

let type = 'salable';
    let channel = 'general';
    date = '1 January 2017 - 31 December 2017';
    let table = $('#best-sold-table-sort').DataTable({
        'processing': true,
        'serverSide': true,
        'ajax': '{!! route('admin.ajax.dashboard.best_sold.get') !!}/' + type + '/' + channel + '/' + date,
        'responsive': true,
        'paging': false,
        'lengthChange': false,
        'searching': false,
        'ordering': true,
        'info': false,
        'autoWidth': false,
        'columns': [
            {data: 'title', name: 'title'},
            {data: 'revenue', name: 'revenue'},
            {data: 'stock_sold', name: 'stock_sold'},
            {data: 'discount', name: 'discount'},
            {data: 'price_excl', name: 'price_excl'},
            {data: 'price_incl', name: 'price_incl'},
            {data: 'margin', name: 'margin'},
            {data: 'profit', name: 'profit'},
            {data: 'roas_target', name: 'roas_target'},
            {data: 'exclude_reason', name: 'exclude_reason'},
        ],        
});

这是我的剧本。

public function getBestSoldData(Request $request) {
    return Datatables::of(\DB::table('aggregated_to_best_sold'))->make(true);
}

这是ajax路由调用的功能。

Route::get('dashboard/get/bestSoldTable/{type?}/{channel?}/{date?}', 'Ajax\DashboardController@getBestSoldData')
    ->name('dashboard.best_sold.get');

这是我的路线档案。

https://imgur.com/IeoWRjU这是我通过ajax调用得到的响应的一部分。我检查了JSON是否有效。 我认为这与DataTables的绘制功能有关。根据我的理解,它应该显示表中重绘的行数,在我的json响应中,它是1或0。

我希望有人能够帮助我们深究这一点。

1 个答案:

答案 0 :(得分:0)

我想在(\ DB :: table('aggregated_to_best_sold')之后你想念这个“)”。

尝试这个。

 public function getBestSoldData(Request $request) {
        return Datatables::of(\DB::table('aggregated_to_best_sold')
          ->make(true);
         }