Kerangka Panel Admin Agnostik.
Mencoba membuatnya minimal mungkin. Ini memungkinkan Anda untuk membuat beberapa halaman dengan berbagai jenis (tabel, bentuk). tanpa banyak campur tangan dengan basis kode Anda.
PS: Anda masih perlu mengatur rute Anda, otentikasi dll ...
Kami mengizinkan beberapa jenis respons, sebagai default kami menggunakan tampilan PHP, tetapi kami menganggap untuk pengguna Laravel sebagai contoh, akan menggunakan blade sebagai gantinya, jadi salah satu solusi yang mungkin adalah membuat Renderer yang berbeda.
Untuk saat ini kami memiliki dua Renderers default:
DefaultRenderer ini hanya mengembalikan array sebagai outputJsonRenderer ini mengembalikan output json Untuk membuat renderer membuatnya memperluas AecodesAdminPanelResponsesRenderer . Kemudian tambahkan ke konfigurasi.
PS: Widget mengimplementasikan antarmuka Widget .
config/panel.php sebagai titik awal.Dashboard , pastikan untuk meneruskan konfigurasi sebagai array. $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel$name & $description dari panel (terlihat di halaman).query yang mengembalikan array data. function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render yang mengembalikan array widget. 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 ();
} Saat memperpanjang kelas Panel , Anda dapat menentukan properti $layout .
Ini tidak dikirimkan dengan lapisan pemandangan. Anda dapat menggunakan paket tampilan default (segera).
Konfigurasi default adalah:
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 [];
}
];