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

系统详情

  • 操作系统 Windows 10
  • PHP 7.1 版
  • Laravel 5.4 版
  • Laravel-Datatables 版本 1.10.13
question

所有3条评论

将您的按钮代码提取到局部视图,然后重新使用它。

```php
->addColumn('action', 函数 ($cidades) {
return 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 等级

相关问题

ahmadbadpey picture ahmadbadpey  ·  3评论

FilipeBorges1993 picture FilipeBorges1993  ·  3评论

alejandri picture alejandri  ·  3评论

ghost picture ghost  ·  3评论

Mopster picture Mopster  ·  3评论