【问题标题】:Yajra/Laravel-datatables setting alias for table headerYajra/Laravel-datatables 为表头设置别名
【发布时间】:2018-08-15 14:46:11
【问题描述】:

我有某个类别下的产品列表,如果我点击类别排序,那么它会显示相同的类别和产品名称。它仅发生在类别排序中。其他排序工作正常。我被困在这里,无法解决这个问题,我也不知道为什么要使用 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;`

【问题讨论】:

  • 发布您的相关代码,而不是您的代码图像。

标签: javascript laravel-5 datatables translation yajra-datatable


【解决方案1】:

我相信是Laravel datatable

如果是命名问题

并且您只想将标题名称更改为 category.name 或其他任何内容.. 在显示表格的刀片视图中,您应该找到标题,您可以从那里相应地更改它。

改变这一行

<th>{{ Lang::get('views.category_name') }}</th>

<th>{{ the new name }}</th>

或者如果您希望它也反映语言代码,您需要修改您的language files

转到视图,使用您要更改的特定语言并更新 category_name 文件

例如,如果您想以 en 语言将 category_name 更改为 CAT title .. 转到 /resources/lang/en 或保存 lang/en 文件夹的任何位置并修改线

'category_name' =&gt; 'CAT title'

如果是数据问题

并且它没有反映您期望的数据,请始终检查产生此问题的链接以及您的情况

/admin/products.data

从那里你可以知道到底发生了什么,所以你可以相应地在你的表格中显示它..你可以查看DataTable Manual

因此,如果您收到的产品数组有一个名为 name .. 的键,那将是一个 product.name,与 JavaScript 读取 json 的方式相同。

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2018-03-23
    • 2020-04-26
    • 2016-03-07
    相关资源
    最近更新 更多