របៀបប្រើ SonataAdminBundle នៅក្នុង Symfony3 (ភាគទី២)

កាលពីភាគទី១ លោកអ្នកបានយល់និងដឹងអំពីវិធីតម្លើង និងការប្រើប្រាស់នូវ SonataAdminBundle រួចមកហើយ ដូចនេះយើងខ្ញុំនឹងនាំលោកអ្នកមកស្វែងយល់អំពីការបង្កើត Admin វិញម្ដងថាតើ មុននឹងបានចេញជារូបរាង Admin តើត្រូវមានដំណាក់កាលអ្វីខ្លះ ហើយវាមានដំណើរការដូចម្ដេចខ្លះ? ដូចនេះសូមចាប់ផ្ដើមទាំងអស់គ្នា៖

ការបង្កើត Admin

ដើម្បីបង្កើត admin បានអ្នកត្រូវបង្កើត Model ជាមុនសិនតាមរយៈ command ដូចខាងក្រោម៖

បន្ទាប់មកអ្នកត្រូវធ្វើការទៅលើ entities របស់អ្នក៖

កំណត់ តម្លៃ default ទៅជា false

បន្ទាប់មកទៀតគឺធ្វើការបង្កើត schema សម្រាប់ entities របស់អ្នកតាមរយៈ command ដូចខាងក្រោម៖

នេះជាដំណាក់កាលនៃការបង្កើត Admin

ជំហានទី១ ធ្វើការបង្កើត Admin Class៖ SonataAdminBundle ជួយអ្នកក្នុងការគ្រប់គ្រងទិន្នន័យដោយប្រើប្រាស់នូវរូបរាងក្រាហ្វិក ដែលអាចអោយអ្នក បង្កើត update, search model instance របស់អ្នក។

នៅក្នុង Admin Class នឹងសម្រេចថាតើ fields ណាមួយដែលនឹងបង្ហាញនៅក្នុង list ហើយ fields ណាដែលនឹងត្រូវប្រើក្នុងការស្វែងរកធាតុ និងរបៀបនៃការបង្កើត form។ រាល់ Model នីមួយៗគឺមាននូវ Admin class ផ្ទាល់ខ្លួនរបស់វា។ ដូចនេះសូមបង្កើតនូវ Admin class សម្រាប់ category entity ហើយវិធីដែលងាយស្រួលនោះគឺ extends Sonata\AdminBundle\Admin\AbstractAdmin

ពន្យល់អំពីកូដ៖

បន្ទាត់ទី១១ដល់១៤ ធ្វើការ configure fields ណាដែលបង្ហាញនៅលើ edit និង create actions។ FormMapper មានលក្ខណៈស្រដៀងគ្នាទៅនឹង FormBuilder នៃ Symfony Form component។

បន្ទាត់ទី១៦ដល់១៩ គឺធ្វើការ configure filters ដែលប្រើក្នុងការ filter និង sort list នៃ model។

បន្ទាត់ទី២១ដល់២៤ បញ្ជាក់អំពី fields ណាដែលបានបង្ហាញនាពេលដែល models ទាំងអស់ត្រូវបាន list (addIdentifier() method )។

ជំហានទី៣ ចុះឈ្មោះ Admin Class ហើយដើម្បីធ្វើដូចនេះបានអ្នកត្រូវបង្កើត service និង tag ជាមួយនឹង sonata.admin tag៖

Constructor នៃ base Admin class គឺមាន argument ច្រើន។ SonataAdminBundle ផ្ដល់នូវ  compiler pass ដែលជាអ្នកមើលថែក្នុងការ configure វាអោយត្រឹមត្រូវសម្រាប់អ្នក។ អ្នកក៏អាចប្រើប្រាស់ tag attributes បានជាញឺកញាប់បានដែរ។

ជំហានទី៤ ចុះឈ្មោះ SonataAdmin custom Routes នៅក្នុង routing,yml file៖ SonataAdminBundle បង្កើត routes សម្រាប់ Admin classes រួចហើយ ដូចនេះបើអ្នកចង់ធ្វើការ load routes ទាំងនោះ អ្នកត្រូវប្រាកដថា routing loader នៃ SonataAdminBundle ត្រូវបានធ្វើការ executed។

ខាងក្រោមនេះជា Admin Interface ដែលលោកអ្នកបានបង្កើតរួចរាល់៖

 

ចែករំលែក​អត្ថបទនេះទៅកាន់៖

Exit mobile version