Laravel-datatables: كيفية إنشاء عمود افتراضي لجميع طرق العرض؟

تم إنشاؤها على ٢١ فبراير ٢٠١٧  ·  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.1
  • إصدار Laravel 5.4
  • إصدار Laravel-Datatables 1.10.13
question

ال 3 كومينتر

استخرج كود الأزرار لعرض جزئي ثم أعد استخدامه.

"" php
-> addColumn ('action'، function ($ cidades) {
عرض العودة ('path.to.buttons' ، مضغوط ('cidaded') -> render () ؛
})

كنت قادرا على فعل ما اقترحته. قمت بنقل الأزرار إلى عرض منفصل. ومع ذلك ، لست متأكدًا الآن من كيفية إرسال المعرفات إلى الأزرار بحيث تتم مزامنتها مع السجلات المناسبة عند عرضها بواسطة طريقة العرض.

<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 التقييمات

القضايا ذات الصلة

FilipeBorges1993 picture FilipeBorges1993  ·  3تعليقات

shadoWalker89 picture shadoWalker89  ·  3تعليقات

macnux picture macnux  ·  3تعليقات

sangnguyenplus picture sangnguyenplus  ·  3تعليقات

SGarridoDev picture SGarridoDev  ·  3تعليقات