admin panel
1.0.0
框架不可知论管理面板。
试图使其尽可能最小。它允许您创建具有不同类型的多个页面(表,表单)。不用太多的代码库。
PS:您仍然需要设置路线,身份验证等...
我们允许多种类型的响应,因为默认情况下我们使用了PHP视图,但是我们认为Laravel用户将使用刀片,因此可以使用blade ,因此一种可能的解决方案是创建另一个Renderer 。
目前,我们有两个默认Renderers :
DefaultRenderer这只是返回一个数组作为输出JsonRenderer此返回JSON输出为了创建渲染器,使其扩展了AecodesAdminPanelResponsesRenderer 。然后将其添加到配置。
PS:小部件实现Widget界面。
config/panel.php创建一个配置文件作为起点。Dashboard类实例(Singleton)实例,请确保将配置作为数组传递。 $ 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 [];
}
];