admin panel
1.0.0
프레임 워크 비영리 관리자 패널.
가능한 한 최소한으로 만들려고합니다. 다른 유형 (테이블, 양식)으로 여러 페이지를 만들 수 있습니다. 코드베이스에 많이 개입하지 않고.
추신 : 여전히 경로, 인증 등을 설정해야합니다 ...
우리는 PHP 뷰를 사용한 기본값으로 여러 유형의 응답을 허용하지만 Laravel 사용자는 예를 들어 blade 사용하므로 가능한 한 가지 해결책은 다른 Renderer 만드는 것입니다.
지금은 두 개의 기본 Renderers 있습니다.
DefaultRenderer 이것은 배열을 출력으로 반환합니다JsonRenderer 이것은 JSON 출력을 반환합니다 렌더러를 만들려면 AecodesAdminPanelResponsesRenderer 확장합니다. 그런 다음 구성에 추가하십시오.
추신 : 위젯은 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 [];
}
];