【发布时间】: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