Панель Agnostic Agnostic Admin.
пытаясь сделать это максимально минимальным. Это позволяет создавать несколько страниц с разными типами (таблица, форма). не вмешиваясь в базу кода.
PS: вам все еще нужно настроить свои маршруты, аутентификацию и т. Д.
Мы разрешаем несколько типов ответов, в качестве по умолчанию мы использовали представления PHP, но вместо этого мы решили для пользователей blade , поэтому одно возможное решение - создать другой Renderer .
На данный момент у нас есть два Renderers по умолчанию:
DefaultRenderer Это просто возвращает массив в качестве выводаJsonRenderer это возвращает вывод JSON Чтобы создать рендеринг, заставьте его расширять AecodesAdminPanelResponsesRenderer . Затем добавьте его в config.
PS: виджеты реализуют интерфейс Widget .
config/panel.php в качестве отправной точки.Dashboard , обязательно пропустите конфигурацию в качестве массива. $ config = require ' ./config/panel.php ' ;
Aecodes AdminPanel Dashboard:: setup ( $ config );Panel$name , так и $description панели (видно на странице).query , который возвращает массив данных. function query (): array {
// get data from database.
return Page:: all ()-> toArray ();
}render , который возвращает массив виджетов. 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 ();
} При расширении класса Panel вы можете указать свойство $layout .
Это не поставляется с обзором. Вы можете использовать пакеты представлений по умолчанию (скоро).
Конфигурация по умолчанию:
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 [];
}
];