【问题标题】:Laravel datatables can't create custom columnsLaravel 数据表无法创建自定义列
【发布时间】:2020-08-03 10:23:23
【问题描述】:

我有两个表,第一个是简单的 html,没有数据表,第二个是数据表。我的目的是第二个转换第一个表两个数据表。但是我有两个主要问题 Grazinimo terminas 列使用 laravel @if 和列 Veiksmai 使用 if 语句以及如何将它们添加为第二个表中的自定义列。

第一个表代码

<table class="table table-bordered">
    <thead class="bg-warning">
        <th>Knygos pavadinimas</th>
        <th>Miestas</th>
        <th>Išdavimo data</th>
        <th>Grąžinimo terminas</th>
        <th>Vardas</th>
        <th>Pavardė</th>
        <th>Kliento nr.</th>
        <th>Veiksmai</th>
    </thead>
    <tbody>
        @foreach($paskolinimai as $p)
        <input type="hidden"
            value="{{ $skirtumas =  \Carbon\Carbon::parse(\Carbon\Carbon::today()->toDateString())->diffInDays( \Carbon\Carbon::parse( $p->terminas),false) }}">
        <tr>
            <td>{{ $p->pavadinimas }}</td>
            <td>{{ $p->miestas }}</td>
            <td>{{ $p->isdavimo_data }}</td>
            @if($p->grazinimo_data != NULL)
            <td>
                <strong style="color: green;">Knyga grąžinta!</strong>
            </td>
            @elseif($skirtumas > 0)
            <td>
                Liko <strong style="color: crimson;">{{ $skirtumas }}</strong> dienų.
            </td>
            @elseif($skirtumas < 0) <td>
                <strong style="color: crimson;">Terminas praėjo!</strong>
                </td>
                @elseif($skirtumas = 0)
                <td>
                    <strong style="color: crimson;">Šiandien paskutinė grąžinimo diena!</strong>
                </td>
                @endif
                <td>{{ $p->vardas }}</td>
                <td>{{ $p->pavarde }}</td>
                <td>{{ $p->klientasnr }}</td>
                @if($p->grazinimo_data == null)
                <td><a href="{{ url('patvirtinti-grazinima-'.$p->id.'-'.$p->bookid) }}"
                        class="btn btn-primary">Grąžinimas</a> </td>
                @else
                <td>
                    <p class="btn btn-success">Grąžinta</p>
                </td>
                @endif
                @endforeach
        </tr>
    </tbody>
</table>

二表代码

<script>
    $(document).ready(function () {
        var darbuotojai = $('#paskolinimai').DataTable({
            processing: true,
            serverSide: true,
            ajax:
            {
                url: '{!! route('get.paskolinimai') !!}'
                },


            columns: [
                { data: 'pavadinimas', name: 'pavadinimas' },
                { data: 'miestas', name: 'miestas' },
                { data: 'isdavimo_data', name: 'isdavimo_data' },
                { data: 'vardas', name: 'vardas' },
                { data: 'pavarde', name: 'pavarde' },

            ],
            'oLanguage': {
                'sSearch': "Paieška:",
                'sZeroRecords': "Nerasta atitinkančių įrašų",
                'sLengthMenu': "Rodyti _MENU_ įrašų",
                'sInfo': "Nuo _START_ iki _END_ viso _TOTAL_ įrašų",
                'sProcessing': "Apdorojama...",
                'sLoadingRecords': "Kraunama...",
                'sInfoFiltered': " - (filtruojama iš _MAX_ įrašų)",
                'oPaginate': {
                    'sFirst': "Pirmas",
                    'sLast': "Paskutinis",
                    'sNext': "Sekantis",
                    'sPrevious': "Ankstesnis"
                },

            },
            'sDom': '<"top"lfip>rt<"bottom"p><"clear">',
        });

    });
</script>
<table id="paskolinimai" class="table table-bordered">
        <thead class="bg-warning">
            <th>Knygos pavadinimas</th>
            <th>Miestas</th>
            <th>Išdavimo data</th>
            <th>Vardas</th>
            <th>Pavardė</th>
        </thead>
        <tbody></tbody>
    </table>
</div>

那么我怎样才能将 Grazinimo 终端和 veiksmai 正确添加到第二张表中

【问题讨论】:

  • 您需要在列定义中使用自定义列渲染器。请参阅docs

标签: laravel datatables laravel-blade


【解决方案1】:

我推荐你使用这个包: https://yajrabox.com/docs/laravel-datatables/master/installation

然后转到部分添加列: https://yajrabox.com/docs/laravel-datatables/master/add-column

在你的代码中会是这样的:

 ->addColumn('intro', function(User $user) {
                if($condtion){return $result}
            })

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多