Yajra/Laravel-datatables 为 table header 设置别名
Yajra/Laravel-datatables setting alias for table header
我有某个类别下的产品列表,如果我点击类别排序,它会显示相同的类别和产品名称。它只发生在类别排序中。其他排序工作正常。我被困在这里,无法解决这个问题,我也不知道为什么要使用 category.name。如果我将其更改为 category_name,则类别排序将停止工作。我什么都试过了。
如何使用别名作为类别名称?我需要在哪个文件中进行更改。
var table = $('#product-table').DataTable({
processing: true,
serverSide: true,
bStateSave: true,
ordering: true,
dom: 'Bfrtip',
buttons:[],
ajax: '{{ URL::to('/admin/products.data') }}',
order: [[1, 'asc']],
columnDefs: [
{ orderable: false, targets: 0 }
],
columns: [
{data: 'edit', name: '', searchable:false},
{data: 'name', name: 'name'},
{data: 'product_code', name: 'product_code'},
{data: 'category_name', name: 'category.name'},
{data: 'impa_code', name: 'impa_code'},
{data: 'issa_code', name: 'issa_code'},
{data: 'status', name: 'is_active'}
],
"deferRender": true
});
**This is my blade file**
`<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 m-t-50">
<div class="card">
<div class="body">
<table class="table table-striped table-hover dataTable" id="product-table">
<thead>
<tr>
<th class="col-sm-1"></th>
<th>{{ Lang::get('views.name') }}</th>
<th>{{ Lang::get('views.shipskart_code') }}</th>
<th>{{ Lang::get('views.category_name') }}</th>
<th>{{ Lang::get('views.impa_code') }}</th>
<th>{{ Lang::get('views.issa_code') }}</th>
<th>{{ Lang::get('views.status') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>`
This is Controller
` ->editColumn('product_code', function ($product) {
$productCode = $product['product_code'];
return $productCode;
})
->addColumn('category_name', function ($product) {
return empty($product->category) ? 'N/A' : $product->category->name ;
})
->editColumn('impa_code', function ($product) {
$impaCode = $product->impa_code;
return $impaCode;
})
->editColumn('issa_code', function ($product) {
$issaCode = $product->issa_code;
return $issaCode;`
如果是命名问题
并且您只想将 header 名称更改为 category.name 或任何其他名称.. 在显示 table 的 blade 视图中,您应该找到 headers,您可以从那里进行相应的更改。
更改此行
<th>{{ Lang::get('views.category_name') }}</th>
到
<th>{{ the new name }}</th>
或者如果您希望它也反映语言代码,则需要修改您的 language files。
转到视图,使用您要更改的特定语言并更新 category_name 文件
例如,如果您想将英语中的 category_name 更改为 CAT title
.. 转到 /resources/lang/en 或者您保存 lang/en文件夹并修改行
'category_name' => 'CAT title'
如果是数据问题
并且它没有反映您期望的数据,请始终检查产生此问题的 link 以及您的情况
/admin/products.data
从那里你可以知道到底发生了什么,所以你可以相应地在你的 table 中显示它..你可以检查 DataTable Manual
因此,如果您收到的产品数组有一个名为 name 的键,那将是一个 product.name,就像 JavaScript 读取 json 一样。
我有某个类别下的产品列表,如果我点击类别排序,它会显示相同的类别和产品名称。它只发生在类别排序中。其他排序工作正常。我被困在这里,无法解决这个问题,我也不知道为什么要使用 category.name。如果我将其更改为 category_name,则类别排序将停止工作。我什么都试过了。
如何使用别名作为类别名称?我需要在哪个文件中进行更改。
var table = $('#product-table').DataTable({
processing: true,
serverSide: true,
bStateSave: true,
ordering: true,
dom: 'Bfrtip',
buttons:[],
ajax: '{{ URL::to('/admin/products.data') }}',
order: [[1, 'asc']],
columnDefs: [
{ orderable: false, targets: 0 }
],
columns: [
{data: 'edit', name: '', searchable:false},
{data: 'name', name: 'name'},
{data: 'product_code', name: 'product_code'},
{data: 'category_name', name: 'category.name'},
{data: 'impa_code', name: 'impa_code'},
{data: 'issa_code', name: 'issa_code'},
{data: 'status', name: 'is_active'}
],
"deferRender": true
});
**This is my blade file**
`<div class="row clearfix">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 m-t-50">
<div class="card">
<div class="body">
<table class="table table-striped table-hover dataTable" id="product-table">
<thead>
<tr>
<th class="col-sm-1"></th>
<th>{{ Lang::get('views.name') }}</th>
<th>{{ Lang::get('views.shipskart_code') }}</th>
<th>{{ Lang::get('views.category_name') }}</th>
<th>{{ Lang::get('views.impa_code') }}</th>
<th>{{ Lang::get('views.issa_code') }}</th>
<th>{{ Lang::get('views.status') }}</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>`
This is Controller
` ->editColumn('product_code', function ($product) {
$productCode = $product['product_code'];
return $productCode;
})
->addColumn('category_name', function ($product) {
return empty($product->category) ? 'N/A' : $product->category->name ;
})
->editColumn('impa_code', function ($product) {
$impaCode = $product->impa_code;
return $impaCode;
})
->editColumn('issa_code', function ($product) {
$issaCode = $product->issa_code;
return $issaCode;`
如果是命名问题
并且您只想将 header 名称更改为 category.name 或任何其他名称.. 在显示 table 的 blade 视图中,您应该找到 headers,您可以从那里进行相应的更改。
更改此行
<th>{{ Lang::get('views.category_name') }}</th>
到
<th>{{ the new name }}</th>
或者如果您希望它也反映语言代码,则需要修改您的 language files。
转到视图,使用您要更改的特定语言并更新 category_name 文件
例如,如果您想将英语中的 category_name 更改为 CAT title
.. 转到 /resources/lang/en 或者您保存 lang/en文件夹并修改行
'category_name' => 'CAT title'
如果是数据问题
并且它没有反映您期望的数据,请始终检查产生此问题的 link 以及您的情况
/admin/products.data
从那里你可以知道到底发生了什么,所以你可以相应地在你的 table 中显示它..你可以检查 DataTable Manual
因此,如果您收到的产品数组有一个名为 name 的键,那将是一个 product.name,就像 JavaScript 读取 json 一样。