簡體   English   中英

Yajra Datatable通過ID獲取字符串

[英]Yajra Datatable get string by Id

我從id通過枚舉獲取字符串時遇到問題。

這是我的數據表代碼:

<script type="text/javascript">
$(document).ready(function(){
    var datatable = $('#datatable').DataTable(
    {
        dom: "lrtip",
        responsive: true,
        processing: true,
        serverSide: true,
        bSortCellsTop: true,
        ajax: {
            url:  "{{ route('driver.list') }}",
            data: { '_token' : '{{csrf_token() }}'},
            type: 'POST',
        },
        columns: [
        { data: 'first_name', name: 'first_name', className: 'text-center', },
        { data: 'last_name', name: 'last_name', className: 'text-center', 'visible': false,
            'searchable': false, },
        { data: 'gender', name: 'gender', className: 'text-center', },
        { data: 'race', name: 'race', className: 'text-center', 'visible': false,
            'searchable': false, },
        { data: 'email', name: 'email', className: 'text-center', },
        { data: 'mobile', name: 'mobile', className: 'text-center', },
        { data: 'nric', name: 'nric', className: 'text-center', },
        { data: 'date_of_birth', name: 'date_of_birth', className: 'text-center', 'visible': false,
            'searchable': false, },
        { data: 'license', name: 'license', className: 'text-center', },
        { data: 'type', name: 'type', className: 'text-center', 'visible': false,
            'searchable': false, },
        { data: 'action', name: 'action', className: 'text-center', orderable: false, searchable: false  },
        ],
        initComplete: function () {
            this.api().columns().every(function () {
                $('#datatable thead tr#filterRow th:not(:last-child)').each( function () {
                    var title = $('#datatable thead th').eq( $(this).index() ).text();
                    $(this).html( '<input type="text" class="col-md-12" placeholder="Search by '+title+'" />');
                    if (title == "Gender") {
                        var select = $('<select>');
                        var genderList = {!! json_encode($genderList) !!};
                        for (var i = 0;i < genderList.length; i++) {
                            option = $('<option>',{
                                value: i,
                                text: genderList[i],
                            });
                            select.append(option);
                        }
                        $(this).html(select);
                    }
                });
                $('select').select2({
                    allowClear: true,
                });  
                $("#datatable thead input,#datatable thead select").on('keyup change', function () {
                    console.log($(this).val());
                    datatable.column( $(this).parent().index()).search(this.value).draw();
                });
            });
        }
    });
});
</script>  

這是我的枚舉代碼:

<?php

namespace App\Helpers\Enums;

final class Gender {
const MALE = 0;
const FEMALE = 1;
public static function getList() {
    return [
        Gender::MALE,
        Gender::FEMALE,
    ];
}

public static function getArray() {
    $result = [];
    foreach (self::getList() as $arr) {
        $result[$arr] = self::getString($arr);
    }
    return $result;
}

public static function getString($val) {
    switch ($val) {
        case 0:
            return "Male";
        case 1:
            return "Female";
    }
}

}

?>

我想從ID枚舉中獲取字符串。

為什么當我選擇男性/女性時,它不處理數據? 任何想法 ?

如果您使用的是Yajra的Datatable軟件包,為什么不使用變壓器,它可以與Fractal一起使用,請參見: https : //datatables.yajrabox.com/eloquent/transformer

然后,您可以在變壓器中執行以下操作:

public function transform(Driver $driver)
{
    return [
        'gender' => $driver->gender == 0 ? 'Male' : 'Female'
    ];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM