如何使用Laravel 5.2在数据表服务器端处理中执行算术计算?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Laravel 5.2在数据表服务器端处理中执行算术计算?相关的知识,希望对你有一定的参考价值。
我一直试图弄清楚如何对使用数据表服务器端处理返回的数据执行算术运算。这很容易使用客户端数据表执行,但如果使用服务器端处理,我该怎么做。这是我的代码。
ProductController.php:
public function anyData()
{
$conditionTxt = "Medical and Lab Supplies";
$products = Product::where('category', 'ILIKE', '%'.$conditionTxt.'%')
->orderBy('created_at', 'desc')
->get();
return Datatables::of($products)->make(true);
}
route.php
Route::get('datatables', 'ProductProductController@index');
Route::get('postproductsdata', 'ProductProductController@anyData');
$('#table-prod-contents').DataTable({
processing: true,
serverSide: true,
ajax: $.fn.dataTable.pipeline( {
url: '{{ url("postproductsdata") }}',
pages: 6000 // number of pages to cache
} ),
columns: [
{data: 'id', name: 'id'},
{data: 'category', name: 'category'},
{data: 'pharmaceutical', name: 'pharmaceutical'},
{data: 'description', name: 'description'},
{data: 'type', name: 'type'},
{data: 'unit', name: 'unit'},
{data: 'price', name: 'price'},
{data: 'quantity', name: 'quantity'},
{data: 'created_at', name: 'created_at'},
]
});
html:
<table id="table-prod-contents" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th></th>
<th>Category</th>
<th>Product Name</th>
<th>Description</th>
<th>Type</th>
<th>Unit</th>
<th>Price</th>
<th>Quantity</th>
<th>Total</th>
<th>Created at</th>
</tr>
</thead>
</table>
显示上面的代码,我想将价格乘以数量,然后在<th>Total</th>
中显示。我该怎么做?
答案
尝试使用Render function
它让我们在表格中显示之前操纵数据。
$('#table-prod-contents').DataTable({
processing: true,
serverSide: true,
ajax: $.fn.dataTable.pipeline( {
url: '{{ url("postproductsdata") }}',
pages: 6000 // number of pages to cache
} ),
columns: [
{data: 'id', name: 'id'},
{data: 'category', name: 'category'},
{data: 'pharmaceutical', name: 'pharmaceutical'},
{data: 'description', name: 'description'},
{data: 'type', name: 'type'},
{data: 'unit', name: 'unit'},
{data: 'price', name: 'price'},
{data: 'quantity',
render:function(data,type,row){
return (parseInt(data) * parseFloat(row[6]));
},
{data: 'created_at', name: 'created_at'},
]
});
另一答案
好像你想动态地在数据表中添加一列,所以你可以这样做,
$datatables = Datatables::of($products)->addColumn('total',$price * $quantity);
return $datatables->make(true);
以上是关于如何使用Laravel 5.2在数据表服务器端处理中执行算术计算?的主要内容,如果未能解决你的问题,请参考以下文章
如何解决:在 laravel 5.2 中找不到类“AddSourceInClotureTable”