24
24
use Symfony \Component \Routing \Attribute \Route ;
25
25
26
26
#[Route('/demos/live-component ' )]
27
- class LiveComponentDemoController extends AbstractController
27
+ class LiveDemoController extends AbstractController
28
28
{
29
29
#[Route('/ ' , name: 'app_demo_live_component ' )]
30
30
public function __invoke (): Response
31
31
{
32
32
return $ this ->redirectToRoute ('app_demos ' );
33
33
}
34
34
35
- #[Route('/auto-validating-form ' , name: 'app_demo_live_component_auto_validating_form ' )]
36
- public function demoAutoValidatingForm (LiveDemoRepository $ liveDemoRepository ): Response
37
- {
38
- return $ this ->render ('demos/live_component/auto_validating_form.html.twig ' , [
39
- 'demo ' => $ liveDemoRepository ->find ('auto-validating-form ' ),
40
- ]);
41
- }
42
-
43
35
#[Route('/form-collection-type/{id} ' , name: 'app_demo_live_component_form_collection_type ' , defaults: ['id ' => null ])]
44
36
public function demoFormCollectionType (LiveDemoRepository $ liveDemoRepository , Request $ request , TodoListRepository $ todoListRepository , ?TodoList $ todoList = null ): Response
45
37
{
@@ -66,14 +58,6 @@ public function demoFormCollectionType(LiveDemoRepository $liveDemoRepository, R
66
58
]);
67
59
}
68
60
69
- #[Route('/dependent-form-fields ' , name: 'app_demo_live_component_dependent_form_fields ' )]
70
- public function demoDependentFormFields (LiveDemoRepository $ liveDemoRepository ): Response
71
- {
72
- return $ this ->render ('demos/live_component/dependent_form_fields.html.twig ' , [
73
- 'demo ' => $ liveDemoRepository ->find ('dependent-form-fields ' ),
74
- ]);
75
- }
76
-
77
61
#[Route('/voting ' , name: 'app_demo_live_component_voting ' )]
78
62
public function demoVoting (LiveDemoRepository $ liveDemoRepository , FoodRepository $ foodRepository ): Response
79
63
{
@@ -97,14 +81,6 @@ public function inlineEdit(LiveDemoRepository $liveDemoRepository, FoodRepositor
97
81
]);
98
82
}
99
83
100
- #[Route('/chartjs ' , name: 'app_demo_live_component_chartjs ' )]
101
- public function chartJs (LiveDemoRepository $ liveDemoRepository ): Response
102
- {
103
- return $ this ->render ('demos/live_component/chartjs.html.twig ' , parameters: [
104
- 'demo ' => $ liveDemoRepository ->find ('chartjs ' ),
105
- ]);
106
- }
107
-
108
84
#[Route('/invoice/{id} ' , name: 'app_demo_live_component_invoice ' , defaults: ['id ' => null ])]
109
85
public function invoice (LiveDemoRepository $ liveDemoRepository , ?Invoice $ invoice = null ): Response
110
86
{
@@ -116,35 +92,20 @@ public function invoice(LiveDemoRepository $liveDemoRepository, ?Invoice $invoic
116
92
]);
117
93
}
118
94
95
+ #[Route('/{demo} ' , name: 'app_demo_live_component_demo ' )]
96
+ #[Route('/auto-validating-form ' , name: 'app_demo_live_component_auto_validating_form ' )]
97
+ #[Route('/chartjs ' , name: 'app_demo_live_component_chartjs ' )]
98
+ #[Route('/dependent-form-fields ' , name: 'app_demo_live_component_dependent_form_fields ' )]
119
99
#[Route('/infinite-scroll ' , name: 'app_demo_live_component_infinite_scroll ' )]
120
- public function infiniteScroll (LiveDemoRepository $ liveDemoRepository ): Response
121
- {
122
- return $ this ->render ('demos/live_component/infinite_scroll.html.twig ' , parameters: [
123
- 'demo ' => $ liveDemoRepository ->find ('infinite-scroll ' ),
124
- ]);
125
- }
126
-
127
100
#[Route('/infinite-scroll-2 ' , name: 'app_demo_live_component_infinite_scroll_2 ' )]
128
- public function infiniteScroll2 (LiveDemoRepository $ liveDemoRepository ): Response
129
- {
130
- return $ this ->render ('demos/live_component/infinite_scroll_2.html.twig ' , parameters: [
131
- 'demo ' => $ liveDemoRepository ->find ('infinite-scroll-2 ' ),
132
- ]);
133
- }
134
-
135
101
#[Route('/product-form ' , name: 'app_demo_live_component_product_form ' )]
136
- public function productForm (LiveDemoRepository $ liveDemoRepository ): Response
137
- {
138
- return $ this ->render ('demos/live_component/product_form.html.twig ' , parameters: [
139
- 'demo ' => $ liveDemoRepository ->find ('product-form ' ),
140
- ]);
141
- }
142
-
143
102
#[Route('/upload ' , name: 'app_demo_live_component_upload ' )]
144
- public function uploadFiles (LiveDemoRepository $ liveDemoRepository ): Response
145
- {
146
- return $ this ->render ('demos/live_component/upload.html.twig ' , parameters: [
147
- 'demo ' => $ liveDemoRepository ->find ('upload ' ),
148
- ]);
103
+ public function demo (
104
+ LiveDemoRepository $ liveDemoRepository ,
105
+ string $ demo ,
106
+ ): Response {
107
+ $ demo = $ liveDemoRepository ->find ($ demo );
108
+
109
+ return $ this ->render ($ demo ->getTemplate (), ['demo ' => $ demo ]);
149
110
}
150
111
}
0 commit comments