J'aimerais savoir comment inclure une colonne avec les boutons d'inclusion et d'édition pour tous les écrans, sans dupliquer le code pour chaque vue ?
J'ai pu créer la colonne avec les boutons, mais comme je l'ai fait, je devrais répéter le code pour chaque vue. Cela augmenterait la maintenance et propagerait éventuellement des bogues.
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);
}
Extrayez le code de vos boutons dans une vue partielle puis réutilisez-le.
```php
->addColumn('action', fonction ($cidades) {
return view('chemin.vers.boutons', compact('cidadé')->render();
})
J'ai pu faire ce que vous m'avez suggéré. J'ai déplacé les boutons vers une vue séparée. Cependant, je ne sais pas comment envoyer les identifiants aux boutons afin qu'ils soient synchronisés avec leurs enregistrements appropriés lorsqu'ils sont rendus par la vue.
<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>
Vous pouvez utiliser un nom de variable générique comme 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>