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:
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:
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ęcreatedAt
wypeznimy automatycznie w późniejszym kroku。
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。
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。