Framework Agnostic Admin Panel.
versuchen, es so minimal wie möglich zu machen. Sie können mehrere Seiten mit unterschiedlichen Typen (Tabelle, Form) erstellen. ohne viel mit Ihrer Codebasis einzugreifen.
PS: Sie müssen noch Ihre Routen, die Authentifizierung usw. einrichten ...
Wir ermöglichen mehreren Antworten, als Standard -PHP -Ansichten, aber wir haben als Beispiel für Laravel -Benutzer gedacht, dass sie stattdessen blade verwenden würden, sodass eine mögliche Lösung darin besteht, einen anderen Renderer zu erstellen.
Im Moment haben wir zwei Standard Renderers :
DefaultRenderer Dies gibt nur ein Array als Ausgabe zurückJsonRenderer Dies gibt JSON Output zurück Um einen Renderer zu erstellen, erweitert er AecodesAdminPanelResponsesRenderer . Fügen Sie es dann zur Konfiguration hinzu.
PS: Widgets implementiert Widget -Schnittstelle.
config/panel.php als Ausgangspunkt.Dashboard -Klasse, stellen Sie sicher, dass Sie die Konfiguration als Array übergeben. $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel erweitert$name & $description des Panels (auf der Seite sichtbar) fest.query , die das Datenarray zurückgibt. function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render -Methode, die eine Reihe von Widgets zurückgibt. function render (): array {
return [
Table:: make ([
// (label, name) both are optional
TD :: make ( ' # ' , ' id ' ),
// it's also possible to use Table::column
Table:: column ( ' Title ' , ' title ' ),
])
// ...
];
} function render (): array {
return [
Form:: make ([
Input:: make ( ' title ' )-> title ( ' Title ' ),
// form submit
Action:: button ( ' Save ' ),
])
-> action ( ' # ' )
-> method ( ' post ' ),
// ...
];
} // callback for some route
public function index () {
// PagesTable extends Panel
return ( new Response ( new PagesTable ))-> render ();
} Beim Erweiterung der Panel können Sie die $layout -Eigenschaft angeben.
Dies versendet nicht mit einer View -Ebene. Sie können die Standardpakete (bald) Views verwenden.
Die Standardkonfiguration lautet:
return [
// current renderer.
' renderer ' => ' default ' ,
// add new renderer here.
' renderers ' => [
' json ' => Aecodes AdminPanel Responses JsonRenderer::class,
' default ' => Aecodes AdminPanel Responses DefaultRenderer::class,
],
// default classes for button and a tag.
' classes ' => [
' link ' => '' ,
' button ' => '' ,
],
// global menus, can be and array or callback
' menu ' => function () {
return [];
},
// input old value.
' old_value ' => function ( $ name , $ default ) {
return $ default ;
},
// global errors (i.e: validation errors)
' errors ' => function () {
return [];
}
];