【问题标题】:Laravel DataTable not displaying DataLaravel DataTable 不显示数据
【发布时间】:2018-02-15 20:49:13
【问题描述】:

我试图在我的 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。

我希望有人能够帮助了解这一点。

【问题讨论】:

  • 您的 HTML 中不应包含 tbody,DataTable 将不会自行显示任何结果消息。
  • 啊,看来成功了,谢谢伙计。

标签: php ajax laravel datatables


【解决方案1】:

我认为你在 (\DB::table('aggregated_to_best_sold') 之后错过了这个“)”。

试试这个。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 2021-06-13
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 2021-09-04
    • 2017-12-17
    相关资源
    最近更新 更多