Laravel Yajra datatables rendering custom html / Spalte styling
Ich habe in einem fairen paar Tagen recherche datatables und yajra Paket, sagte, Dass, ich bin nicht näher zu bekommen die Ergebnisse, die ich brauche und wäre dankbar eine helfende hand auf diesen einen, wenn jemand mit mehr wissen als mein Novize Ansatz!
Helfen, besser zu erklären habe ich anbei zwei Bilder, das Erste Bild ist eine Anwendung, die bereits das umgesetzt, und die zweite ist eine schnelle mock-ich habe geworfen wurde, um den Unterschied zu zeigen.
Den gewünschten Erfolg, ich bin in der Hoffnung zu erreichen...
Der heutigen Sicht habe ich...
Ich bin im Grunde versucht, hinzufügen von benutzerdefinierten html, um jede Spalte, die verlangt, die Funktionalität.. ich habe es geschafft, zu erreichen, einige leichte Erfolg durch Rücksendung einer benutzerdefinierten array etwa so:
foreach ($tasks as $task) {
$checkBox = '<div class="checkbox"><input type="checkbox" value="63"><label></label></div>';
$taskPriority = '<span class="text-info inline-block">Medium</span>';
... so on ...
$row = array(
$checkBox,
$taskPriority,
... so on ...
);
$rows[] = $row;
}
$list['data'] = $rows;
return $list;
Das funktioniert zwar, ich würde nicht sagen, das ist der beste Ansatz, und man stellt sich vor, es gibt einige, was eine bessere und elegantere Art und Weise, dies zu tun?
Verstehe ich yajra hat die addColumn und editColumn Methoden, die ich verwendet habe diese zum hinzufügen einer Spalte "Aktion" so, dass ist das einzige, das scheint zu Rendern html, andere Verfahren, andere als addColumn('action', 'blah blah') scheint nicht zu wollen das Rendern der html-und stattdessen zeigt es als unformatierten text in die Zeile ein.
Nur in diesem Fall ist, um jedem zu helfen, hier wird der Ajax-Aufruf gemacht, um die Daten der Tabelle.
$('#taskstable').DataTable({
"processing": true,
"retrieve": true,
"serverSide": true,
'paginate': true,
'searchDelay': 700,
"bDeferRender": true,
"responsive": true,
"autoWidth": false,
"pageLength": 5,
"lengthMenu": [[5, 10, 25, 50, 100], [5, 10, 25, 50, 100]],
ajax: '/tasks/get-tasks'
});
Hoffentlich kann mir jemand helfen, lindern den stress des seins ein Neuling! Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Ansatz, den ich gefunden habe, als die Zeit, ich poste diese Antwort ist wie folgt, Dass gesagt wird, ich bin sicher, dass dies nicht der beste Ansatz zu nehmen und vielleicht in der Zeit zu kommen, jemand mit mehr Erfahrung als mich wirst in der Lage sein zu posten die bessere Lösung.
In meinem Projekt verwende ich ein spezielles Paket namens Laravel Kollektiven, die gefunden werden können: ...hier..
Mit diesem Paket erhalten Sie Zugriff auf eine helper-Klasse und Fassade. Mit einigen geringfügigen änderungen, die spezifisch für meine Anwendung, die ich in der Lage gewesen, um großen nutzen aus diesem Paket.
Einen ähnlichen Ansatz wäre, dies zu tun:
Hinweis
mit der return HtmlFacade::link(); diese Methode wird return html gerendert wird auf die Daten der Tabelle, Eine vollständige Liste der Methoden kann gefunden werden, indem man in der Dokumentation oder in meinem Fall geht durch die Klasse seiner selbst und sehen Sie den Quellcode gab mir ein besseres Verständnis dafür, wie Ihr Paket gearbeitet, Nicht nur das, sondern es gibt die Möglichkeit zum hinzufügen von weiteren Methoden der Klasse und das ist, wie ich gekommen bin, um das Ergebnis erhalten, die ich benötigte.
Ich bin nicht zu veröffentlichen, werden alle benutzerdefinierten Klassen, da ich nicht denke, es ist auch relevant, um zu helfen niemandem in die Zukunft als die Methoden, die ich Hinzugefügt haben oder sehr ähnlich zu dem, was das Paket kommt mit out of the box, der Unterschied ist nur, zu ermöglichen, onclick JavaScript events und Neigung CSS.
Die moral von dieser Antwort ist, lassen Sie jemand anderes in einer ähnlichen position, um mich wissen, dass wenn Sie schon mit diesem Paket dann seine möglich, Sie müssen nicht gegossen werden alle Zeilen-arrays manuell nur für die übergabe von benutzerdefinierten html-Ansicht, und ich nicht mehr brauchen um dies zu tun:
stattdessen können Sie benutzerdefinierte Attribute, Klassen-und Aufbau von laravel kollektiven Paket, Hier ist die link-Methode laravel kollektiven kommt mit werden können ein Baustein, um das hinzufügen von benutzerdefinierten Methoden, um Ihre Paket.
Sollte geben den Menschen eine Vorstellung davon, wie können Sie leicht ändern Sie diesen Html-Builder, um Ihre Anforderungen, Als ich sagte, ich bin sicher, dies ist nicht die beste und eleganteste wollen erreichen das gleiche, wenn nicht ein besseres Ergebnis, also werde ich Sie lassen die Frage offen, für die Zukunft Lösungen, die ich gerade dachte, ich würde teilen meine Lösung.