Laravel-datatables: Bagaimana cara membuat kolom default untuk semua tampilan?

Dibuat pada 21 Feb 2017  ·  3Komentar  ·  Sumber: yajra/laravel-datatables

Saya ingin tahu bagaimana saya bisa menyertakan kolom dengan tombol sertakan dan edit untuk semua layar, tanpa menduplikasi kode untuk setiap tampilan?

Saya dapat membuat kolom dengan tombol, tetapi cara saya melakukannya, saya harus mengulangi kode untuk setiap tampilan. Ini akan meningkatkan pemeliharaan dan kemungkinan menyebarkan bug.

if ($request->ajax()) {
            $cidades = Cidade::with('estado')->get();

            return Datatables::of($cidades)
                ->addColumn('action', function ($cidades) {
                    $editar  =
                        '<a href="' . route($this->dados['rota'] . '.edit', $cidades->id) . '" class="ui icon button yellow">' .
                        '   <i class="icon write"></i>' .
                        '</a>';
                    $deletar = '<form action="' . route($this->dados['rota'] . '.destroy', $cidades->id) . '" method="post" style="display: inline">' .
                        csrf_field() .
                        method_field('DELETE') .
                        '   <button type="submit" class="ui icon button red">' .
                        '       <i class="icon trash"></i>' .
                        '</button >' .
                        '</form >';

                    return $editar . $deletar;
                })
                ->make(true);
        }

Detail sistem

  • Sistem Operasi Windows 10
  • PHP Versi 7.1
  • Laravel Versi 5.4
  • Laravel-Datatables Versi 1.10.13
question

Semua 3 komentar

Ekstrak kode tombol Anda ke tampilan sebagian lalu gunakan kembali.

```php
->addColumn('action', function ($cidades) {
return view('path.to.buttons', compact('cidaded')->render();
})

Saya bisa melakukan apa yang Anda sarankan. Saya memindahkan tombol ke tampilan terpisah. Namun, saya sekarang tidak yakin bagaimana saya bisa mengirim id ke tombol sehingga mereka disinkronkan dengan catatan yang tepat saat dirender oleh tampilan.

<a href="{{HOW DO I GET THE ID FROM HERE}}/edit" class="ui icon button yellow">
    <i class="icon write"></i>
</a>

<form action="{{HOW DO I GET THE ID FROM HERE}}" method="post" style="display: inline">
    {{ csrf_field() }}
    {{ Form::hidden("_method", "DELETE") }}

    <button type="submit" class="ui icon button red">
        <i class="icon trash"></i>
    </button>
</form>

Anda dapat menggunakan nama variabel generik seperti model:

->addColumn('action', function ($model) {
    return view('path.to.buttons', compact('model')->render();
})
<form action="{{$model->id}}" method="post" style="display: inline">
    {{ csrf_field() }}
    {{ Form::hidden("_method", "DELETE") }}

    <button type="submit" class="ui icon button red">
        <i class="icon trash"></i>
    </button>
</form>
Apakah halaman ini membantu?
0 / 5 - 0 peringkat