Me gustaría saber cómo puedo incluir una columna con los botones de inclusión y edición para todas las pantallas, sin duplicar el código para cada vista.
Pude crear la columna con los botones, pero de la forma en que lo hice, tendría que repetir el código para cada vista. Esto aumentaría el mantenimiento y posiblemente propagaría errores.
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);
}
Extraiga el código de sus botones en una vista parcial y luego reutilícelo.
`` php
-> addColumn ('acción', función ($ cidades) {
return view ('ruta.a.buttons', compact ('cidaded') -> render ();
})
Pude hacer lo que sugirió. Moví los botones a una vista separada. Sin embargo, ahora no estoy seguro de cómo puedo enviar los identificadores a los botones para que estén sincronizados con sus registros adecuados cuando la vista los represente.
<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>
Puede usar un nombre de variable genérico como modelo:
->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>