Konfigurowanie panelu administracyjnego
Konfigurowanie panelu administracyjnego
Dodawanie nadchodzących konferencji做bazy danych jest zadaniem administratorow我administratorek projektu。面板administracyjny对chroniona częśćstrony internetowej, w ktorejosoby korzystające z konta administracyjnegomogązarządzaćdanymi strony internetowej, moderowaćprzesłane opinie我wiele innych。
木菠萝możemy, szybko stworzyć吗?咱pomocąpakietu ktory jest w stanie wygenerować面板administracyjny w oparciu projektu o模型。EasyAdmin idealnie się做迪高nadaje。
Instalowanie kolejnych zależności
Nawet jeśli pakietwebapp
automatycznie dodałwiele przydatnych pakietow,国防后勤局niektorych bardziej specyficznych funkcji, musimy dodaćwięcej zależności。W jaki sposob możemy dodaćwięcej zależności吗?咱pomocą作曲家。Oprocz„zwykłych”pakietow作曲家będziemy pracowaćz dwoma„specjalnymi”rodzajami pakietow:
- Komponenty ob娱乐下载Symfony我:Pakiety ktore implementująpodstawowe funkcje niskopoziomowe abstrakcje, ktorych wymaga większośćaplikacji(路由、konsola klient HTTP、梅勒pamięćpodręczna,…);
- 包Symfonob娱乐下载y:Pakiety ktore dodająwysokopoziomowe funkcje滑zapewniająintegracjęz bibliotekami stron trzecich(包sąw większości dostarczane przez społeczność)。
Dodajmy EasyAdmin jako zależnośćprojektu:
1
美元ob娱乐下载symfony作曲家要求“管理:^ 4”
管理
jest aliasem国防后勤局pakietueasycorp / easyadmin-bundle
。
Aliasy聂sąfunkcją作曲家,啤酒koncepcjądostarczonąprzez Symfony,赎ułatwiob娱乐下载ćCiżycie。Aliasy, skroty做popularnych pakietow作曲家。Potrzebujesz ORMa——dołącz„api”。Te aliasy automatycznie rozwiązujązależności国防后勤局pojedynczych滑teżwielu zwykłych pakietow作曲家。Są一ustalone przez głowny zespołSymfoob娱乐下载ny。
Innąprzydatnąfunkcjąjest możliwośćpomijania dostawcy symfoob娱乐下载ny“国防后勤局instalowanego pakietu。Dołącz缓存
zamiastob娱乐下载symfony /缓存
。
提示
Pamiętasz,木菠萝wspomnieliśmy wcześniej o wtyczce作曲家ob娱乐下载symfony / flex
吗?Aliasy jedna z jej funkcji。
Konfigurowanie EasyAdmin
EasyAdmin automatycznie generuje obszar administracyjny国防后勤局Twojej aplikacji, na podstawie konkretnych kontrolerow。
Rozpocznijmy nasząpracęz EasyAdmin tworząc“webowy面板administracyjny ktory będzie kluczowym miejscem做zarządzania danymi na stronie。
1
美元ob娱乐下载symfony控制台:admin:仪表板
Zaakceptowanie domyślnych odpowiedzi powoduje utworzenie następującego kontrolera:
W ramach przyjętej konwencji, wszystkie kontrolery panelu administracyjnego sąprzechowywane W przestrzeni nazw应用程序控制器\ \管理
。
Wejdź做wygenerowanego panelu administracyjnego odwiedzając/管理
——德木菠萝ustawiliśmy w metodzieindex ()
。Możesz zmienić这URL na jaki tylko chcesz:
屁股!Mamy nieźle wyglądający面板administracyjny gotowy dostosowania做naszych potrzeb。
Następnym krokiem będzie utworzenie kontrolera做zarządzania konferencjami我komentarzami。
W kontrolerze mogłeśzauważyćfunkcjęconfigureMenuItems ()
,ktora posiada komentarz na temat dodawania linkow做“杂质”…噢。CRUDakronim od”创建、读取、更新和删除”(utworz, odczytaj, zaktualizuj usuń)- czterech podstawowych operacji, ktore możesz wykonaćna każdej encji。Dokładnie迪高,czego oczekujemy od panelu administracyjnego zrobienia咱nas。Jednak EasyAdmin daje znacznie więcej, zajmując siętakże wyszukiwaniem我filtrowaniem。
Wygenerujmy CRUD国防后勤局konferencji:
1
美元ob娱乐下载symfony控制台:admin: crud
Wybierz1
我,赎utworzyćinterfejs administracyjny国防后勤局konferencji użyj domyślnych wartości w pozostałych pytaniach。Następujący plik zostanie wygenerowany:
Zrob萨摩国防后勤局komentarzy:
1
美元ob娱乐下载symfony控制台:admin: crud
Ostatnim krokiem będzie dodanie做panelu interfejsow administracyjnych国防后勤局konferencji我komentarzy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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;@@ -40 7 + 42 8 @@类DashboardController AbstractDashboardController延伸公共函数configureMenuItems (): iterable {——收益率菜单项::linkToDashboard(“仪表板”,“fa fa-home”);——/ /收益率菜单项::linkToCrud(‘标签’,‘fas fa-list’, EntityClass::类);+收益率菜单项::linktoRoute(“回网站”,“fas fa-home”,“首页”);+收益率菜单项::linkToCrud(“会议”、“fas fa-map-marker-alt”,会议::类);+收益率菜单项::linkToCrud(“评论”、“fas fa-comments”,备注::类);}}
Nadpisaliśmy metodęconfigureMenuItems ()
,赎dodać做菜单pozycje z ikonami odpowiednimi国防后勤局konferencji我komentarzy oraz linkiem przenoszącym na stronęgłowną。
EasyAdmin udostępnia API,赎ułatwićlinkowanie CRUD-ow咱pomocąmetody子菜单:linkToRoute ()
。
Strona głowna panelu administracyjnego jest obecnie pusta。Jest miejsce, gdzie możesz wyświetlaćstatystyki, albo inne ważne informacje。Ponieważ聂mamyżadnych ważnych informacji wyświetlenia, zrobmy przekierowanie na listękonferencji。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
- - - / src /控制器/ Admin / DashboardController.php+ + + b / src /控制器/ Admin / DashboardController.php@@ 7,6 + 7,7 @@使用App \实体\会议;使用包EasyCorp \ \ EasyAdminBundle \ Config \仪表板;使用包EasyCorp \ \ EasyAdminBundle \ Config \子菜单;控制器使用EasyCorp \包\ EasyAdminBundle \ \ AbstractDashboardController;路由器+使用EasyCorp \包\ EasyAdminBundle \ \ AdminUrlGenerator;组件使用ob娱乐下载Symfony \ \ HttpFoundation \反应;使用Syob娱乐下载mfony \组件\路由\注释\路线;@@ -15 7 + 16 10 @@类DashboardController延伸AbstractDashboardController #(路线(“/管理”,名字:“admin”)]公共函数指数():反应{——返回父:指数();+ $ routeBuilder = $ this - >容器- > (AdminUrlGenerator::类);+ $ url = $ routeBuilder - > setController (ConferenceCrudController::类)- > generateUrl ();++ $ this - >返回重定向($ url);/ /选项1。你可以让你的仪表板页面重定向到一些常见的后端/ /
Podczas wyświetlania relacji encji (konferencji powiązanej z danym komentarzem), EasyAdmin probuje wykorzystaćtekstowąreprezentacjękonferencji。Jeśli klasa encji聂posiada zdefiniowanej”magicznej metody”__toString ()
,domyślna implementacja używa nazwy encji oraz wartości przypisanej做klucza głownego (np。会议# 1
)。偿wyświetlana treśćzawierała więcej istotnych informacji, dodajmy metodę__toString ()
做klasy会议
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
- - - / src /实体/ Conference.php+ + + b / src /实体/ Conference.php@@ -32、6 + 32 $ this - > 11 @@类会议评论= new ArrayCollection ();}+公共职能__toString():字符串+ {+ $ this - >返回城市。“。$ this - >;+}+公共函数getId (): int ?{返回$ this - > id;
Zrob萨摩国防后勤局klasy评论
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
- - - / src /实体/ Comment.php+ + + b / src /实体/ Comment.php@@ -32 32 6 + 11 @@类评论# [ORM \列(类型:字符串,长度:255年,可以为空:true)]私人photoFilename美元;+公共职能__toString():字符串+ {+返回(字符串)$ this - > getEmail ();+}+公共函数getId (): int ?{返回$ this - > id;
Teraz możesz dodawać/ modyfikowaćusuwaćkonferencje bezpośrednio z panelu administracyjnego。Pobaw sięnim我dodaj公司najmniej jednąkonferencję。
Dodaj kilka komentarzy鹿角的第二叉zdjęć。Na razie ustaw datęręcznie;kolumnęcreatedAt
wypełnimy automatycznie w poźniejszym kroku。
Dostosowywanie EasyAdmin
Domyślny面板administracyjny działa dobrze,啤酒można dostosowaćna wiele sposobow赎usprawnićjego działanie。Zrobmy kilka prostych zmian w encji评论
,赎zademonstrowaćniektore z tych możliwości:
1 2 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 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.php15 @@ @@ 3 7 + 3名称空间的应用程序控制器\ \管理;使用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延伸AbstractCrudController{@@ -12年,14 + 20,44 @@类CommentCrudController扩展AbstractCrudController返回评论::类;}- / *+公共职能configureCrud Crud美元(Crud): Crud+ {+返回crud美元+ - > setEntityLabelInSingular(会议评论)+ - > setEntityLabelInPlural(会议评论)+ - > setSearchFields([‘作者’,‘文本’,'邮件'])+ - > setDefaultSort ([' createdAt ' = > ' DESC '])+;+}++公共职能configureFilters(过滤器过滤器美元):过滤器+ {美元+返回过滤器+ - >添加(EntityFilter::新(会议))+;+}+公共函数configureFields pageName美元(string): iterable {——返回- IdField::新(id),——文本框::新(“标题”),- TextEditorField::新(描述),-);+收益率AssociationField::新(会议);+收益率TextField::新(“作者”);+收益率EmailField::新(电子邮件);+收益率TextareaField::新(文本)+ - > hideOnIndex ()+;+收益率TextField::新(“photoFilename”)+ - > onlyOnIndex ()+;++ $ createdAt = DateTimeField::新(createdAt) - > setFormTypeOptions ([+“html5”= >真的,+ '年' = >范围(日期(Y),日期(Y) + 5),+“部件”= >“single_text”,+));+如果(Crud:: PAGE_EDIT = = = $ pageName) {+ $ createdAt - > setFormTypeOption收益率(“禁用”,真正的);+其他}{+收益率createdAt美元;+}}- * /}
偿zmodyfikowaćsekcję评论
,wskazanie波尔bezpośrednio w metodzieconfigureFields ()
pozwala南na wyświetlenie我w takiej kolejności w jakiej byśmy chcieli。Niektore普拉sądalej konfigurowane, na przykład ukrywanie波尔tekstowych na stronie z indeksem。
MetodaconfigureFilters ()
pozwala zdefiniować,ktore filtry powinny byćdostępne w wyszukiwarce。
Te modyfikacje sątylko małąprezentacjąmożliwości,里面daje南EasyAdmin。
Pobaw siępanelem administracyjnym, wyfiltruj komentarze阿宝konferencji滑na przykład wyszukuj我po adresie电子邮件。Jedynym problemem开玩笑,że każdy马做niego dostęp。聂martw się,zabezpieczymy w przyszłości。
1
美元ob娱乐下载symfony psql - c运行“截断会议重启身份级联”