Yajra Datatable关系显示一列中的记录

时间:2019-09-04 13:40:51

标签: php laravel datatable

这是我的ID列数据结构

ID:[1,2,3,4,5,6,7,8]

这是我控制器的代码。

formfield_for_dbfield

和Javascript函数

class PlatformEnvInLine(admin.TabularInline):
    model = PlatformEnv
    extra = 1
    classes = ['collapse']
    fields = ('environment',)

    def formfield_for_dbfield(self, db_field, request, **kwargs):
        formfield = super().formfield_for_dbfield(db_field, request, **kwargs)
        if db_field.name == 'environment':
            formfield.widget.can_add_related = False
            formfield.widget.can_change_related = False
            formfield.widget.can_delete_related = False
       return formfield

它正在运行,但问题在于它在$transaction = ExpenseEntry::with('transaction'); return DataTables::eloquent($transaction) ->editColumn('transaction', function (ExpenseEntry $expense) { return $expense->transaction->map(function ($transaction) { return $transaction->id; }); })->make(true); 这样的表中显示了所有$(document).ready(function () { $('#data-table').DataTable({ "ordering": false, "processing": true, "serverSide": true, "ajax": '{!! route(' expense_dts ') !!}', columns: [{ data: 'id', name: 'id' }, { data: 'expense_type', name: 'expense_type' }, { data: 'amount', name: 'amount' }, { data: 'date', name: 'date' }, { data: 'description', name: 'description' }, { data: 'transaction', name: 'transaction.id' } ] }); });

我想让它们像每行中的每个ID及其列一样。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以尝试

return DataTables::eloquent($transaction)
    ->editColumn('transaction', function (ExpenseEntry $expense) {
        return $expense->transaction->map(function ($transaction) {
            return $transaction->id->toArray();
        });
    })->make(true);