Konfigurowanie panelu管理

Konfigurowanie panelu管理

Dodawanie nadchodzzycych konferencji do bazy danych jest zadaniem administratorów i administratorek projektu。面板administracyjny送给捷克维奇,网址którejOsoby korzystajesce z konta行政Mogą扎扎克·丹伊米·斯特罗尼·因特网,现代性的przeszane意见我的见解。

杰克·莫泽米和斯泽布科·斯特沃什克?Za pomocą pakietu, który jest w stanie wygenerowaic面板行政管理w oparciu o模型项目。EasyAdmin idealnie się做tego nadaje。

Instalowanie kolejnych zaleebnoovich

Nawet jejdli pakietwebapp自编自编的多达拉·维勒普兹达涅奇pakietów, dla niektórych巴兹耶斯特菲兹涅奇funkcji, musimy多达克·维切耶·扎列夫诺维奇。W jaki sposób mozemy dodaic wiechej zaleebnovacci ?扎pomocą作曲家。Oprócz“zwykych”pakietów作曲家,bludziemy pracowaic z dwoma“specjalnymi”rodzajami pakietów:

  • Komponenty ob娱乐下载Symfony: Pakiety, które implementują podstawwe funkcje i niskopoziomowe abstrakcje, których wymaga wijellkszoizovic aplikacji(路由,konsola, klient HTTP, mailer, pamiachik podrichczna,…);
  • 包Symfonob娱乐下载y: Pakiety, które dodają wysokopoziomowe funkcje lub zapewniają integrację z bibliotekami stron trzecich(捆绑są w wieshikszoovic dostarczane przez spozecznoovic)。

Dodajmy EasyAdmin jako zaleebnoovic do projektu:

1
ob娱乐下载交响乐作曲家要求“管理:^ 4”

管理笑话,别名,dla pakietueasycorp / easyadmin-bundle

Aliasy聂są funkcją作曲家,ale koncepcją dostarczoną przez Symfony,阿比ob娱乐下载乌乌塔维奇Ci zycie。Aliasy, to skróty do popularnych pakietów作曲家。Potrzebujesz ORMa - do华沙兹" api "。Te aliasy automatycznie rozwiązują扎列佐夫维奇dla pojedynczych lub te耶扎乌兹维奇pakietów作曲家。Są one ustalone przez główny zespół ob娱乐下载Symfony。

Inną przydatną funkcją jest mowliwotzic pomijania dostawcyob娱乐下载 "symfony" dla instalowanego pakietu。做łącz缓存zamiastob娱乐下载symfony /缓存

提示

帕米耶什塔兹,jak wspomnieliummy wcze涅j o wtyczce作曲家ob娱乐下载symfony / flex?Aliasy to jedna z jej funkcji。

Konfigurowanie EasyAdmin

EasyAdmin automatycznie generuje obszar administracyjny dla Twojej aplikacji, na podstawie konkretnych kontrolerów。

Rozpocznijmy naszą pracę z EasyAdmin tworzanyc "webowy panel administracyjny", który bzydzie kluczowym miejscem do zarzannizdzania danymi na stronie。

1
ob娱乐下载Symfony控制台make:admin:dashboard

Zaakceptowanie domyjellnych odpowiedzi powoduje utworzenie nastcippujcego kontrolera:

src /控制器/ Admin / DashboardController.php
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
名称空间应用程序控制器管理使用EasyCorpEasyAdminBundle配置指示板使用EasyCorpEasyAdminBundle配置子菜单使用EasyCorpEasyAdminBundle控制器AbstractDashboardController使用ob娱乐下载组件HttpFoundation响应使用ob娱乐下载组件路由注释路线DashboardController扩展AbstractDashboardController/ * * *@Route("/admin", name="admin") */公共函数指数()响应返回::指数();}公共函数configureDashboard()指示板返回指示板::()->setTitle (“留言板”);}公共函数configureMenuItems()可迭代的收益率子菜单::linktoDashboard (“仪表板”“fa fa-home”);// yield MenuItem::linkToCrud('标签','图标类',EntityClass::类);}}

W ramach przyjjectej konwencji, wsystkie kontrolery panelu administracyjnego są przechowywane W przestrzeni nazw应用程序控制器\ \管理

wejdgrad do wygenerowanego panelu administracyjnego odwiedzajenzc/管理- tak jak ustawilikjmy to w metodzieindex ().莫泽兹·兹米尼奇说:

/管理

屁股!Mamy niekovle wygldajhcy panel administracyjny, gotowy do dostosowania do naszych potrzeb。

nastzhepnym krokiem bzydzie utworzenie kontrolera do zarzouldania konferencjami i komentarzami。

W kontrolerze mogevevich zauwazich funkcjęconfigureMenuItems (), która posiada komentarz na temat dodawania linków做“CRUD”-ów。CRUDto akronim od“创建,读取,更新和删除”(utwórz, odczytaj, zaktualizuj, usuvik) - czterech podstawowych operacji, które motsez wykonak na kauzdej encji。捷克国王,捷克国王,捷克政府。Jednak EasyAdmin daje znacznie wiechcej, zajmujic się takeze wyszukiwaniem i filtrowaniem。

Wygenerujmy CRUD dla konferencji:

1
ob娱乐下载Symfony控制台make:admin:crud

Wybierz1,阿比乌特沃什克干涉行政管理德拉konferencji我乌茨耶多米耶茨瓦托维奇w pozostaych pytaniach。nastsippujagicy plik zostanie wygenerowany:

src /控制器/ Admin / ConferenceCrudController.php
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
名称空间应用程序控制器管理使用应用程序实体会议使用EasyCorpEasyAdminBundle控制器AbstractCrudControllerConferenceCrudController扩展AbstractCrudController公共静态函数getEntityFqcn()字符串返回会议::类;}/*公共函数configureFields(string $pageName):可迭代{返回[IdField::new('id'), TextField::new('title'), TextEditorField::new('description'),];} * /

Zrób给samo dla komentarzy:

1
ob娱乐下载Symfony控制台make:admin:crud

Ostatnim krokiem byldzie dodanie do panelu interfejsów administracyjnych dla konferencji i komentarzy:

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);}}

Nadpisaliś我metodęconfigureMenuItems (), aby dodaic do menu pozycje z ikonami odpowiednimi dla konferencji I komentarzy, oraz linkiem przenoszzyzycym na stronę główną。

EasyAdmin udostzynpnia API, aby uutatwiic linkowanie CRUD-ów za pomocą metody子菜单:linkToRoute ()

Strona główna panelu administracyjnego jest obecnie pusta。对我说句俏皮话,对我说句话,对我说句话。波尼瓦耶涅妈妈,瓦茨瓦涅奇,维茨维涅尼亚,zróbmy普泽基罗维尼娜listę konferencji。

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;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载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。您可以使仪表板重定向到后端//的一些公共页面

Podczas wywiwietlania relacji encji (konferencji powizanej z danym komentarzem), EasyAdmin próbuje wykorzystak tekstową reprezentację konferencji。jeutli klasa encji nie posiada zdefiniowanej "magicznej metody"__toString (),到domylna implementacja uzeywa nazwy encji oraz wartotzci przypisanej do klucza głównego (np。会议# 1).阿比·维耶维特拉娜·特雷奇扎维耶拉亚·维耶切亚·伊托尼奇信息网,多达密metodę__toString ()做klasy会议

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;

Zrób给samo dla klasy评论

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;

Teraz moesesz dodawaic / modyfikowaic / usuwaic konferencje bezpotserednio z panelu行政部门。Pobaw się nim i dodaj co najmniej jedną konferencję。

/管理

多达伊·基尔卡·科曼塔奇·贝兹兹杰切克。Na razie ustaw datę rachicznie;kolumnęcreatedAtwypeznimy automatycznie w późniejszym kroku。

/管理?crudAction = index&crudId = 2 bfa220&menuindex = 2 &submenuindex = 1

Dostosowywanie EasyAdmin

多米耶茨尔尼小组行政管理,阿勒莫夫纳去dostosowaic na wiele sposobów aby usprawnich jego dziayanie。Zróbmy kilka prostych zmian w encji评论, aby zademonstrowak niektóre z tych moitzliwowicci:

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;+}- * /

阿比兹莫迪菲科瓦克sekcję评论, wskazanie pól bezporenrednio w metodzieconfigureFields ()Pozwala nam na wyievwietlenie ich w takiej kolejnokoci, w jakiej byievmy chcieli。Niektóre pola są dalej konfigurowane, na przykwad ukrywanie pól tekstowych na stronie z indeksem。

MetodaconfigureFilters ()Pozwala zdefiniowaic, które filtry powinny byic dostzynpne w wyszukiwarce。

/管理?crudAction = index&crudId = 2 bfa220&menuindex = 2 &submenuindex = 1

Te modyfikacje są tylko małą prezentacją mozliwoenko, jakie daje nam EasyAdmin。

Pobaw się panelem administracyjnym, wyfiltruj komentarze po konferencji lub na przykwad wyszukuj je po adresie e-mail。jedynm问题笑话到,ze kawdy ma do niego dostzpp。聂martw się, zabezpieczymy go w przyszovici。

1
ob娱乐下载Symfony运行PSQL -c“截断会议重新启动身份级联”
此工作,包括代码示例,是根据知识共享协议BY-NC-SA 4.0许可证。