Laravel-datatables: すべてのビューのデフォルト列を作成するにはどうすればよいですか?

作成日 2017年02月21日  ·  3コメント  ·  ソース: yajra/laravel-datatables

各ビューのコードを複製せずに、すべての画面のインクルードボタンと編集ボタンを使用して列をインクルードする方法を知りたいですか?

ボタンを使用して列を作成することはできましたが、その方法では、ビューごとにコードを繰り返す必要がありました。 これにより、メンテナンスが増加し、バグが伝播する可能性があります。

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);
        }

システムの詳細

  • オペレーティングシステムWindows10
  • PHPバージョン7.1
  • Laravelバージョン5.4
  • Laravel-Datatablesバージョン1.10.13
question

全てのコメント3件

ボタンコードを部分ビューに抽出してから再利用します。

`` `php
-> addColumn( 'action'、function($ cidades){
view( 'path.to.buttons'、compact( 'cidaded')-> render();を返します。
})

私はあなたが提案したことをすることができました。 ボタンを別のビューに移動しました。 ただし、ビューによってレンダリングされたときにボタンが適切なレコードと同期されるように、ボタンにIDを送信する方法がわかりません。

<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>

モデルのような一般的な変数名を使用できます。

->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>
このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

kamrava picture kamrava  ·  3コメント

jgatringer picture jgatringer  ·  3コメント

josiahke picture josiahke  ·  3コメント

sangnguyenplus picture sangnguyenplus  ·  3コメント

hohuuhau picture hohuuhau  ·  3コメント