เฟรมเวิร์กผู้ไม่เชื่อเรื่องพระเจ้า
พยายามทำให้มันน้อยที่สุดเท่าที่จะทำได้ ช่วยให้คุณสร้างหลายหน้าด้วยประเภทที่แตกต่างกัน (ตารางแบบฟอร์ม) โดยไม่ต้องแทรกแซงฐานรหัสของคุณมากนัก
PS: คุณยังต้องตั้งค่าเส้นทางการตรวจสอบสิทธิ์ ฯลฯ ...
เราอนุญาตให้มีการตอบกลับหลายประเภทเป็นค่าเริ่มต้นที่เราใช้มุมมอง PHP แต่เราคิดว่าสำหรับผู้ใช้ Laravel เป็นตัวอย่างจะใช้ blade แทนดังนั้นวิธีแก้ปัญหาที่เป็นไปได้อย่างหนึ่งคือการสร้าง Renderer ที่แตกต่างกัน
สำหรับตอนนี้เรามีสอง Renderers เริ่มต้น:
DefaultRenderer นี่เพิ่งส่งคืนอาร์เรย์เป็นเอาต์พุตJsonRenderer นี้ส่งคืนเอาต์พุต JSON ในการสร้าง Renderer ทำให้มันขยาย AecodesAdminPanelResponsesRenderer จากนั้นเพิ่มลงในการกำหนดค่า
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 [];
}
];