Налаштування па анел о ке е с с а ан
Налаштування па анел о ке е с с а ан
Додаваннямайбутніхконференційдобазиданих——завданняадміністраторівпроекту。ПанельКерування-枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣枣адміністраторипроектуможутькеруватийоговмістом,модерувативідгукитощо。
Як ми можемо ст т о о и ити и и ?Задопомогоюбандла,якийздатнийзгенеруватипанелькеруваннянаосновімоделіпроекту。EasyAdmin ідеально підходить дл о о о о。
Встановлення додаткови н залежностей
Навіть якщо пак ке пwebapp
автоматичнододавбагаточудовихпакетів,длядеякихбільшспецифічнихфункційнампотрібнододатибільшезалежностей。Як ми можемо дод т т більше залежностей?За допомо о в о о о о о о о о в。Окрім”звичайних”пакетів作曲家,мибудемопрацюватиздвома”спеціальними”типамипакетів:
- КомпонентиS欧宝娱乐app下载地址ymfony:пакетия,кіреалізуютьосновніфункціїінизькорівневіабстракції,якіпотрібнібільшостізастосунків(маршрутизація,консоль,HTTP -клієн,трозсилка,кеш,…);
- БандлиS欧宝娱乐app下载地址ymfony:пакетия,кідодаютьвисокорівневіфункціїчизабезпечуютьінтеграціюзістороннімибібліотеками(пакетиздебільшогонадаютьсяспільнотою)。
Додаймо EasyAdmin як залежність п оекту:
1
$欧宝娱乐app下载地址交响乐作曲家要求“管理:^ 4”
管理
є псевдонімом дл пакетаeasycorp / easyadmin-bundle
.
Псевдоніминеєфункцією作曲家цеконцепціяSymfonyдляпо欧宝娱乐app下载地址легшеннявашогожиття。Псевдонімиєярликамидляпопулярнихпакетів作曲家。Хочете orm дл а а о о ос тосунку?Виконайте要求orm
.Хочете оз з обити api ?Виконайте要求api
.Ціпсевдонімиавтоматичноперетворюютьсяводинабокільказвичайнихпакетів作曲家。Цеусвідомленийвибір,зробленийосновноюкомандоюSymfon欧宝娱乐app下载地址y。
Щеоднаприємнаособливістьполягаєвтому、щовизавждиможетепропуститиі“ямпостачальника欧宝娱乐app下载地址
.Виконайте要求缓存
замість欧宝娱乐app下载地址symfony /缓存
.
提示
Випам”ятаєте,щомивжезгадувалиплагін作曲家підназвою欧宝娱乐app下载地址symfony / flex
?Псевдоніми є однією з о о особ обли осте в。
НалаштуванняEasyAdmin
EasyAdminавтоматичногенеруєпанелькеруваннядлявашогозастосункунаосновіконкретнихконтролерів。
ЩоброзпочатироботузEasyAdmin,створімо”панелькерування”,якабудеосновноюточкоювходудляуправлінняданимивеб——сайту:
1
$欧宝娱乐app下载地址Symfony控制台make:admin:dashboard
Приймаючивідповідізазамовчуванням,створюєтьсянаступнийконтролер:
Задомовленістювсіконтролерипанелікеруваннязберігаютьсявїхвласномупросторіімен应用程序控制器\ \管理
.
Отримайтедоступдозгенерованоїпанелікеруваннязаадресою/管理
, а а а а а а а а а етодомindex ()
;виможетезмінитиURL -адресунабудь——яку、якавамподобається:
Бум!Унасєприємнийінтерфейспанелікерування,готовийбутиналаштованимвідповіднодонашихпотреб。
Наступнимкрокомєстворенняконтролерівдляуправлінняконференціямиікоментарями。
УконтролеріпанелікеруваннявимоглипомітитиметодconfigureMenuItems ()
,якийміститькоментарщодододаванняпосиланьна“尘埃”。CRUDєабревіатуроювід“创建、读取、更新、і删除”,чотирьохосновнихоперацій,якіпотрібновиконуватинадбудь——якоюсутністю。Цесамете,щомихочемо,щобпанелькеруваннявиконуваладлянас;EasyAdminнавітьвиводитьценановийрівень,такождбаючипропошукіфільтрацію。
Створімо crud дл конференцій:
1
$欧宝娱乐app下载地址Symfony控制台make:admin:crud
Виберіть1
,щобстворитиінтерфейспанелікеруваннядляконференційівикористовуйтезначеннязазамовчуваннямдляіншихпитань。Має б ан т т з о ен ровано ан наст пни ф - а а л:
Зробіть т т сам т дл коментарів:
1
$欧宝娱乐app下载地址Symfony控制台make:admin:crud
Останнімкрокомєзв”язуванняCRUDконференціїікоментарязпанеллюкерування:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22
——/ src /控制器/ Admin / DashboardController.php+ + + b / src /控制器/ Admin / DashboardController.php@@ -2,6 +2,8 @@名称空间的应用程序控制器\ \管理;+使用App \实体\评论;+使用App \实体\会议;使用包EasyCorp \ \ EasyAdminBundle \ Config \仪表板;使用包EasyCorp \ \ EasyAdminBundle \ Config \子菜单;控制器使用EasyCorp \包\ EasyAdminBundle \ \ AbstractDashboardController;@@类DashboardController扩展AbstractDashboardController公共函数configuremuitems():可迭代{- yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');- // yield MenuItem::linkToCrud('The Label', 'fas fa-list', EntityClass::class);+ yield MenuItem::linktoRoute('回到网站','fas fa-home', '首页');+ yield MenuItem::linkToCrud('会议','fas fa-map-marker-alt',会议::类);+ yield MenuItem::linkToCrud('Comments', 'fas fa-comments', Comment::class);}}
Ми перевизна с или методconfigureMenuItems ()
,щобдодатипунктименюзвідповіднимизначкамиконференційікоментарі,ватакождодатипосиланнянаголовнусторінкувеб——сайту。
EasyAdminнададєAPIляполегшеннязв”язуваннязCRUDсутностейзадопомогоюметоду子菜单:linkToRoute ()
.
Головнасторінкапанелікеруванняпокищопорожня。Тутвиможетевідобразитидеякустатистикучибудь——якувідповіднуінформацію。Оскількиунаснемаєнічоговажливогодлявідображення,переспрямуймодоспискуконференцій:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22
——/ src /控制器/ Admin / DashboardController.php+ + + b / src /控制器/ Admin / DashboardController.php@@ -7,6 +7,7 @@使用App\Entity\Conference;使用包EasyCorp \ \ EasyAdminBundle \ Config \仪表板;使用包EasyCorp \ \ EasyAdminBundle \ Config \子菜单;控制器使用EasyCorp \包\ EasyAdminBundle \ \ AbstractDashboardController;路由器+使用EasyCorp \包\ EasyAdminBundle \ \ AdminUrlGenerator;组件使用欧宝娱乐app下载地址Symfony \ \ HttpFoundation \反应;使用Sy欧宝娱乐app下载地址mfony \组件\路由\注释\路线;@@ -15,7 +16,10 @@ class DashboardController extends AbstractDashboardController #[路由('/admin',名称:'admin')]公共函数索引():Response {- return parent::index();+ $routeBuilder = $this->container->get(AdminUrlGenerator::class);+ $url = $routeBuilder->setController(ConferenceCrudController::class)->generateUrl();++返回$this->重定向($url);//选项1。您可以使仪表板重定向到后端//的一些公共页面
Привідображеннізв”язківсутності(конференція,пов”язаназкоментарем)容易管理намагаєтьсявикористовуватирядковепредставленняконференції。Зазамовчуваннямвінвикористовуєдомовленість,якавикористовуєім”ясутностііпервиннийключ(наприклад,会议# 1
), якщо сутність не визначає“магічний”метод__toString ()
.Щобзробитивідображеннязмістовнішим,додайтетакийметодуклас会议
:
12 3 4 5 6 7 8 9 10 11 12 13 14
——/ src /实体/ Conference.php+ + + b / src /实体/ Conference.php@@ -32,6 +32,11 @@ class Conference $this->comments = new ArrayCollection();}+公共函数__toString():字符串+ {+返回$this->城市。“。$ this - >;+}+公共函数getId(): ?int{返回$this->id;
Зробіть те ж саме дл клас评论
:
12 3 4 5 6 7 8 9 10 11 12 13 14
——/ src /实体/ Comment.php+ + + b / src /实体/ Comment.php@@ -33,6 +33,11 @@ class注释#[ORM\列(长度:255,nullable: true)] private ?string $photoFilename = null;+公共函数__toString():字符串+ {+ return (string) $this->getEmail();+}+公共函数getId(): ?int{返回$this->id;
Тепервиможетедодаватиз/мінювати/видалятиконференціїбезпосередньозпанелікерування。Пограйтесязцимідодайтехочабоднуконференцію。
Додайте кілька коментарів без фото。Встановіть дату у, пок у у у ан н;м т з о об м мо тома ати и и нн нн а а а а апо а ненн енн стовп о икаcreatedAt
на одном му з наст т пни н кроків。
КастомізаціяEasyAdmin
Панелькеруваннязазамовчуваннямпрацюєдобре,алеїїможнаналаштуватибагатьмаспособами,щобполіпшитизручністьїївикористання。Зробімокількапростихзмінусутності评论,щобпродемонструватидеякіможливості:
12 34 56 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
——/ src /控制器/ Admin / CommentCrudController.php+ + + b / src /控制器/ Admin / CommentCrudController.php@@ -3,7 +3,15 @@名称空间的应用程序控制器\ \管理;使用App \实体\评论;+使用EasyCorp \ \ EasyAdminBundle \ Config \ Crud捆绑销售;+使用包EasyCorp \ \ EasyAdminBundle \ Config \过滤器;控制器使用EasyCorp \包\ EasyAdminBundle \ \ AbstractCrudController;+使用EasyCorp \包\ EasyAdminBundle \ \ AssociationField领域;+使用EasyCorp \包\ EasyAdminBundle \ \ DateTimeField领域;+使用EasyCorp \包\ EasyAdminBundle \ \ EmailField领域;+使用EasyCorp \包\ EasyAdminBundle \ \ TextareaField领域;+使用EasyCorp \ \ EasyAdminBundle \字段\ TextField捆绑销售;+使用EasyCorp \包\ EasyAdminBundle \滤波器\ EntityFilter;类CommentCrudController extends AbstractCrudController{@@ -12,14 +20,44 @@类CommentCrudController extends AbstractCrudController return Comment::类;}- / *+公共函数configurerd (Crud $ Crud): Crud+ {+返回$crud+ ->setEntityLabelInSingular('Conference Comment')+ -> setentitylabelin复数('会议评论')+ ->setSearchFields(['author', 'text', 'email'])+ ->setDefaultSort(['createdAt' => 'DESC'])+;+}++公共函数configureFilters(Filters $ Filters):过滤器+ {+返回$filters+ - - - - - - >添加(EntityFilter::新(会议))+;+}+公共函数configureFields(字符串$pageName):可迭代{-返回[- IdField::新(id),——文本框::新(“标题”),- TextEditorField::新(描述),-);+ yield AssociationField::new('conference');+ yield TextField::new('author');+ yield EmailField::new('email');textareaffield::new('text')+ - > hideOnIndex ()+;TextField::new('photoFilename')+ - > onlyOnIndex ()+;++ $createdAt = DateTimeField::new('createdAt')->setFormTypeOptions([+ 'html5' => true,+ 'years' => range(日期('Y'),日期('Y') + 5),+ 'widget' => 'single_text',+));+ if (Crud::PAGE_EDIT === $pageName) {+ yield $createdAt->setFormTypeOption('disabled', true);+}其他{+ yield $createdAt;+}}- * /}
Для на а а а т т - а ан розділу评论
вни и к перелік полів у методconfigureFields ()
дозволяє нам м пор о дку у ат т м м так, як м м хочемо。Деякіполяналаштовуютьсядодатково,наприклад,приховуваннятекстовогополянаіндекснійсторінці。
МетодиconfigureFilters ()
визначають,якіфільтринадаватиповерхполяпошуку。
Ціналаштуванняєлишеневеликимвведеннямвможливості、щонадаютьсяEasyAdmin。
Пограйтесязпанеллюкерування,відфільтруйтекоментарізаконференцієючизнайдітьїх,наприклад,заелектронноюпоштою。Єдиниймомент-коженможеотриматидоступдопанелікерування。Нехвилюйтеся,мизабезпечимоконтрольдоступунаодномузнаступнихкроків。
1
$欧宝娱乐app下载地址Symfony运行PSQL -c“截断会议重新启动身份级联”