Laravel, Yajra Datatable, как вернуть если у то да еще нет - PullRequest
1 голос
/ 21 января 2020

У меня есть имя столбца, отображаемое в таблице стран, так как теперь я использую yajra datatable, так как я могу просмотреть да вместо y, а также, Нет, если n

 $data = $this->SourceData->getData();
        return Datatables::of($data)
                ->addIndexColumn()

->addColumn('Actions', function($data) {...})
                ->rawColumns(['Actions'])
                ->make(true);

jquery

       columns: [
            {data: 'id', name: 'id', visible:false},
            {data: 'DT_RowIndex', name: 'DT_RowIndex'},
            {data: 'name', name: 'name'},
            {data: 'code', name: 'code'},
            {data: 'show', name: 'show'},
            {data: 'Actions', name: 'Actions',orderable:false,serachable:false,sClass:'text-center'},

Ответы [ 3 ]

3 голосов
/ 21 января 2020

Пожалуйста, проверьте этот код

$data = $this->SourceData->getData();

return Datatables::of($data)
        ->addIndexColumn()
        ->editColumn('show', function ($data) {
            return  ($data->show == 'y')?"Yes":($data->show == 'n')?"No":"";
        })
        ->addColumn('Actions', function($data) {...})
        ->rawColumns(['Actions'])
        ->make(true);
0 голосов
/ 21 января 2020

Добавить addColumn как show

->addColumn('show', function($data) {
    if($data->show == 'y'){
        return 'Yes';
    }else{
        return 'No';
    }
})

Или же вы можете использовать getAttribute метод в модели.

Добавить getShowAttribute($value)

function getShowAttribute($value){
    return  ($value == 'y') ? "Yes" : "No";
}
0 голосов
/ 21 января 2020

Вы можете использовать два разных подхода: 1. в jquery:

{
    data: function (data, type, row, meta) {
        if(data.show == 'y') {
            return 'YES';
        }
        return 'NO';
    name: 'show'
},
в yajra вы можете использовать editColumn
...