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
  • ๋ผ๋ผ๋ฒจ ๋ฒ„์ „ 5.4
  • Laravel-Datatables ๋ฒ„์ „ 1.10.13
question

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ฒ„ํŠผ ์ฝ”๋“œ๋ฅผ ๋ถ€๋ถ„ ๋ณด๊ธฐ๋กœ ์ถ”์ถœํ•œ ๋‹ค์Œ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

```php
->addColumn('์•ก์…˜', ํ•จ์ˆ˜($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>

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>
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰