That's not really an advanced topic, but the sample will be a bit hard to read (as it takes many files), so let's say it targets more experienced Symfony users.
In this demo, we're displaying a MyArray of MyElements, both persisted into the database. The MyArray entity only have an id and a name, and MyElement has id, MyArray's id and a value. This is quite the same as we seen in all demos, but persisted.
Name | Open | Delete |
---|---|---|
___ â Cela fonctionne â | Open | Delete |
___ â Cela fonctionne à | Open | Delete |
___ â Cela fonctionne Ã34н34н | Open | Delete |
___ Array with Elements ... Click Open to test loading | Open | Delete |
___ ☘ Cela fonctionne ☘ | Open | Delete |
_____ | Open | Delete |
__________________________________________ | Open | Delete |
____________________________1 test | Open | Delete |
_________coucou | Open | Delete |
___%20%C3%83%C2%A2%C3%82%C2%98%C3%82%C2%98%20Cela%20fonctionne%20%C3%83 | Open | Delete |
___%20%C3%83%C2%A2%C3%82%C2%98%C3%82%C2%98%20Cela%20fonctionne%20%C3%83%C2%A2%C3%82%C2%98%C3%82%C2%98 | Open | Delete |
___array___ | Open | Delete |
__bvnvbnvbnvbn | Open | Delete |
_a_firra | Open | Delete |
_è | Open | Delete |
_Greeting | Open | Delete |
---#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
---#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
!! | Open | Delete |
' | Open | Delete |
() | Open | Delete |
(orphée) | Open | Delete |
(SELECT (CASE WHEN (4287=3498) THEN 'kjh' ELSE (SELECT 3498 UNION SELECT 3037) END)) | Open | Delete |
@12 | Open | Delete |
&&&&&&&&&&& | Open | Delete |
#456 | Open | Delete |
#69 | Open | Delete |
#72 | Open | Delete |
#7233333 | Open | Delete |
#72uuuu | Open | Delete |
%237233333 | Open | Delete |
%2372uuuu | Open | Delete |
%2372uuuuokokok | Open | Delete |
%2391 | Open | Delete |
%25237233333 | Open | Delete |
%25237233333#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
%25237233333#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
%25237233333#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
%25237233333#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
%25237233333#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
%25237233333#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
%252372uuuu#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
%252372uuuu#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
%252372uuuu#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
%252372uuuu#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
%252372uuuu#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
%252372uuuu#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
%252372uuuu#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
%252391 | Open | Delete |
%253F#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
%253F#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
%253F#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
%253F#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
%253F#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
%253F#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
%25C3%2583%25C2%25B1lkjlkj | Open | Delete |
%25C3%25B1sfkjaldsa | Open | Delete |
%28orph%C3%A9e%29 | Open | Delete |
%28SELECT%20%28CASE%20WHEN%20%283158=3158%29%20THEN%20%27kjh%27%20ELSE%20%28SELECT%201437%20UNION%20SELECT%202166%29%20END%29%29 | Open | Delete |
%28SELECT%20%28CASE%20WHEN%20%284626=9556%29%20THEN%20%27kjh%27%20ELSE%20%28SELECT%209556%20UNION%20SELECT%209237%29%20END%29%29 | Open | Delete |
%3Csdsads | Open | Delete |
%3F | Open | Delete |
%C3%83%C2%83%C3%82%C2%83%C3%83%C2%82%C3%82%C2%B1lkjlkj | Open | Delete |
%C3%A2%C2%98%C2%98%20Cela%20fonctionne%20%C3%A2%C2%98%C2%98 | Open | Delete |
%C3%B1sfkjaldsa | Open | Delete |
< | Open | Delete |
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<LETTRE GREC>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | Open | Delete |
<script>alert('test')</script> | Open | Delete |
<script>alert('test')</script>%n%n%n%n%n%n | Open | Delete |
<script>alert('test')</script>%n%n%n%n%n%n<script>alert('test')</script>%n%n%n%n%n%n<script>alert('test')</script>%n%n%n%n%n%n<script>alert('test')</script>%n%n%n%n%n%n<script>alert('test')</script>%n%n%n%n%n%n<script>alert('test')</script>%n%n%n%n%n%n<sc | Open | Delete |
<sdsads | Open | Delete |
000tom | Open | Delete |
001122334455 | Open | Delete |
10 | Open | Delete |
1000-1 | Open | Delete |
11#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
11#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
11#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
11#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
1111 | Open | Delete |
1111#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
1111#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
1111#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
1111#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
1111#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
11111 | Open | Delete |
11111111111111 | Open | Delete |
1111111111111111111111111111111111#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
1111111111111111111111111111111111#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
1111111111111111111111111111111111%23i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
1111Yapi | Open | Delete |
12 | Open | Delete |
121113aaaaa | Open | Delete |
123 | Open | Delete |
123123 | Open | Delete |
1241 | Open | Delete |
15 | Open | Delete |
1aa | Open | Delete |
222 | Open | Delete |
2222 example | Open | Delete |
2222%20example | Open | Delete |
2222%2520example | Open | Delete |
2222%252520example | Open | Delete |
222222 | Open | Delete |
2232323 | Open | Delete |
2323 | Open | Delete |
2344234 | Open | Delete |
3 | Open | Delete |
32jnni | Open | Delete |
454 | Open | Delete |
5 | Open | Delete |
78 | Open | Delete |
86787 | Open | Delete |
88 | Open | Delete |
8888 | Open | Delete |
8899 | Open | Delete |
969 | Open | Delete |
99 | Open | Delete |
a | Open | Delete |
a Lorenz | Open | Delete |
ñsf | Open | Delete |
â Cela fonctionne â | Open | Delete |
A1 | Open | Delete |
a2 | Open | Delete |
aa | Open | Delete |
ñlkjlkj | Open | Delete |
ñsfkjaldsa | Open | Delete |
Aaa | Open | Delete |
aaaa | Open | Delete |
ÃÂñsfkjaldsa | Open | Delete |
aaaaa | Open | Delete |
aaaaaaa | Open | Delete |
AAAAAEER | Open | Delete |
aaamine | Open | Delete |
aaamine22222 | Open | Delete |
aaamine22222#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
aaamine22222#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
aaamine22222#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
aaamine22222#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
aaamine22222#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
aasdasd | Open | Delete |
ad | Open | Delete |
adasdada | Open | Delete |
Addresses | Open | Delete |
adfadf | Open | Delete |
adrian | Open | Delete |
adsada | Open | Delete |
Alpha | Open | Delete |
alsi | Open | Delete |
Array | Open | Delete |
array new | Open | Delete |
array1 | Open | Delete |
array2 | Open | Delete |
articulo | Open | Delete |
asas | Open | Delete |
asd asd asd | Open | Delete |
asdas | Open | Delete |
asdasd | Open | Delete |
asdasd#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
asdasd#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
asdasd#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
asdasd#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
asdasd%23i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
asdasd%23ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
asdasdadasd#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
asdasdadasd#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
asdasdadasd#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
asdasdadasd#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
asdasdadasd#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
asdasdadasd#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
asdasdadasd%23i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
asdasddadsd | Open | Delete |
asdf | Open | Delete |
asdfg | Open | Delete |
asds | Open | Delete |
assa | Open | Delete |
AU | Open | Delete |
az | Open | Delete |
azazaz | Open | Delete |
Aze | Open | Delete |
b | Open | Delete |
bam | Open | Delete |
bbb | Open | Delete |
bbbbbbbbbbb | Open | Delete |
bcvbcvb | Open | Delete |
bdfdfdfdf | Open | Delete |
bite | Open | Delete |
bjfhj | Open | Delete |
bjfhj#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
bjfhj#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
bjfhj#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
bjfhj#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
bjfhj#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
blah#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
born | Open | Delete |
caca | Open | Delete |
caracas | Open | Delete |
Caracas222 | Open | Delete |
cdcdc | Open | Delete |
cela | Open | Delete |
Cela fonctionne pas | Open | Delete |
ciao | Open | Delete |
Cmucik | Open | Delete |
cnes | Open | Delete |
colombo | Open | Delete |
cool | Open | Delete |
cups | Open | Delete |
cvSDFSD | Open | Delete |
cx | Open | Delete |
cx<wc | Open | Delete |
cx<wc'A=0 | Open | Delete |
cxcxx | Open | Delete |
D | Open | Delete |
D happy 2018 | Open | Delete |
D#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
D#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
D#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
D%23i5784b3886628c4362594ffa43547edb4 | Open | Delete |
dada | Open | Delete |
dadd | Open | Delete |
das | Open | Delete |
dd | Open | Delete |
ddazdaz | Open | Delete |
dddd | Open | Delete |
ddddd | Open | Delete |
Demo | Open | Delete |
dfa | Open | Delete |
dfa#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
dfa#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
dfa%23i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
dfa%23i27992875ec4286a24e569b1e015b0473 | Open | Delete |
dfa%23ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
dfa%23ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
dfdfdf | Open | Delete |
dfdsf | Open | Delete |
dfg | Open | Delete |
dfsdf | Open | Delete |
dfty | Open | Delete |
dfvds | Open | Delete |
dgdgdg | Open | Delete |
diego | Open | Delete |
Doom | Open | Delete |
dra | Open | Delete |
dsadsadd | Open | Delete |
dsd | Open | Delete |
dsdfgsdfgdf | Open | Delete |
dsds | Open | Delete |
dsf | Open | Delete |
dsfdsfd | Open | Delete |
dsfsdfs | Open | Delete |
dsvfdsfg] | Open | Delete |
dsvfdsfg%5D | Open | Delete |
e | Open | Delete |
ee | Open | Delete |
ejemplito 2 | Open | Delete |
ejemplo 2 | Open | Delete |
ejemplo 2017 | Open | Delete |
ejemplo 2017-11-23 | Open | Delete |
erwgfu%C4%B1gj8hl%C4%B1 | Open | Delete |
erwgfuıgj8hlı | Open | Delete |
erwgfuñgj8hlñ | Open | Delete |
erwgfuıgj | Open | Delete |
exadasdas | Open | Delete |
exam | Open | Delete |
example | Delete | |
example exam | Open | Delete |
example Radu | Open | Delete |
example%2520exam | Open | Delete |
example1 | Open | Delete |
example123 | Open | Delete |
example123#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
example123#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
example123#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
example123#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
example123%23i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
example2 | Open | Delete |
example22222222222222 | Open | Delete |
example33333 | Open | Delete |
exampleasd | Open | Delete |
exampleasfsafa | Open | Delete |
exampleasfsafasf | Open | Delete |
exampleasfsafasf#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
exampleasfsafasf#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
exampleasfsafasf#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
exampleasfsafasf#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
exampleasfsafasf#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
exampledsdsdd | Open | Delete |
examplee | Open | Delete |
exampleeaze | Open | Delete |
examplefh | Open | Delete |
examplehfghfhfgfg | Open | Delete |
examplehjkhjk | Open | Delete |
examplejjj | Open | Delete |
examplemmm | Open | Delete |
examplenhnhd | Open | Delete |
exampleqzd | Open | Delete |
examplertyrtyrty | Open | Delete |
exampleRW | Open | Delete |
examplesa | Open | Delete |
examplesa;fs;af;sfsf | Open | Delete |
examplesadasdsdsad | Open | Delete |
examplesafs | Open | Delete |
examplesafsaf;sfsf | Open | Delete |
examplesafsafsfsf | Open | Delete |
exampless | Open | Delete |
exampletes | Open | Delete |
exampletestsf sdf sd sd | Open | Delete |
examplexzasca | Open | Delete |
examqdqsple | Open | Delete |
Existing%20arrays: | Open | Delete |
Existing%2520arrays: | Open | Delete |
exkiample | Open | Delete |
eze | Open | Delete |
familly | Open | Delete |
fasdfasf | Open | Delete |
fat | Open | Delete |
Fda | Open | Delete |
fdasfdaF | Open | Delete |
fdf#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
fdf#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
fdf#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
fdf%23i27992875ec4286a24e569b1e015b0473 | Open | Delete |
fdgfgsdf | Open | Delete |
fdsdf | Open | Delete |
fe | Open | Delete |
ff d | Open | Delete |
ff%20d | Open | Delete |
fff | Open | Delete |
ffsss | Open | Delete |
fgdfg | Open | Delete |
fgfdg | Open | Delete |
fgfdgdgdf | Open | Delete |
fghjk, | Open | Delete |
fghjkl | Open | Delete |
fgt | Open | Delete |
firrra | Open | Delete |
fr | Open | Delete |
frfrf | Open | Delete |
Fruits | Open | Delete |
fsdfsdf | Open | Delete |
fsgv | Open | Delete |
fuck you | Open | Delete |
fuck%20you | Open | Delete |
gdfg | Open | Delete |
gdfg#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
gdfg#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
gdfg#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
gdfg#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
geht nicht | Open | Delete |
gfdgdf | Open | Delete |
gg%27A=0 | Open | Delete |
ggg | Open | Delete |
GGI | Open | Delete |
ghgtytyt | Open | Delete |
ghione | Open | Delete |
ghjk | Open | Delete |
ghjk#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
ghjk#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
ghk | Open | Delete |
Group%20B | Open | Delete |
Group%2BC#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
Group%2BC#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
Group%2BC#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
Group%2BC#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
Group+C | Open | Delete |
gufc fucvuy | Open | Delete |
Hello World ! | Open | Delete |
Hello%20World | Open | Delete |
Hello%20World%20! | Open | Delete |
Hello%2520World%2520! | Open | Delete |
HEYY%2520:D#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
HEYY%2520:D#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
HEYY%2520:D#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
HEYY%252520:D%23ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
hghgh | Open | Delete |
hgkjh | Open | Delete |
hh | Open | Delete |
hhh | Open | Delete |
hhmm | Open | Delete |
hikj | Open | Delete |
ho | Open | Delete |
hoho | Open | Delete |
htrhrh | Open | Delete |
http | Open | Delete |
hujpizda | Open | Delete |
hyhy | Open | Delete |
iii | Open | Delete |
interest | Open | Delete |
ismail | Open | Delete |
itemList | Open | Delete |
itemList2 | Open | Delete |
iujjj | Open | Delete |
iuy | Open | Delete |
j | Open | Delete |
jhgfgh | Open | Delete |
jhj | Open | Delete |
jhkl | Open | Delete |
jj | Open | Delete |
jk | Open | Delete |
jkbhkjh | Open | Delete |
jkjk | Open | Delete |
julio | Open | Delete |
kaas | Open | Delete |
khj | Open | Delete |
khj#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
khj#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
khj#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
khj%23i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
kiki | Open | Delete |
kj | Open | Delete |
kjh | Open | Delete |
kjh AND 1091=5857 | Open | Delete |
kjh AND 2935=5884-- JseU | Open | Delete |
kjh AND 4281=2310-- NRaM | Open | Delete |
kjh AND 5825=4111 | Open | Delete |
kjh AND 7390 IN (SELECT (CHAR(113)+CHAR(106)+CHAR(106)+CHAR(118)+CHAR(113)+(SELECT (CASE WHEN (7390=7390) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(113)+CHAR(122)+CHAR(120)+CHAR(113)))-- iTwS | Open | Delete |
kjh AND 7426=7426-- QqbR | Open | Delete |
kjh AND 8864=CAST((CHR(113)||CHR(122)||CHR(107)||CHR(120)||CHR(113))||(SELECT (CASE WHEN (8864=8864) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(106)||CHR(107)||CHR(122)||CHR(113)) AS NUMERIC)-- XVww | Open | Delete |
kjh AND 9667 IN (SELECT (CHAR(113)+CHAR(122)+CHAR(107)+CHAR(120)+CHAR(113)+(SELECT (CASE WHEN (9667=9667) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(106)+CHAR(107)+CHAR(122)+CHAR(113))) | Open | Delete |
kjh AND 9667 IN (SELECT (CHAR(113)+CHAR(122)+CHAR(107)+CHAR(120)+CHAR(113)+(SELECT (CASE WHEN (9667=9667) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(106)+CHAR(107)+CHAR(122)+CHAR(113)))-- IHOP | Open | Delete |
kjh AND EXTRACTVALUE(7241,CONCAT(0x5c,0x717a6b7871,(SELECT (ELT(7241=7241,1))),0x716a6b7a71)) | Open | Delete |
kjh AND EXTRACTVALUE(7241,CONCAT(0x5c,0x717a6b7871,(SELECT (ELT(7241=7241,1))),0x716a6b7a71))-- fAHu | Open | Delete |
kjh ORDER BY 1-- MwCf | Open | Delete |
kjh ORDER BY 1-- PNBN | Open | Delete |
kjh ORDER BY 1-- pvJb | Open | Delete |
kjh ORDER BY 1-- rvnA | Open | Delete |
kjh' AND 1967=4628 AND 'WfvI'='WfvI | Open | Delete |
kjh' AND 2561=2906 AND 'dQSK'='dQSK | Open | Delete |
kjh' AND 4678=8698 AND 'uMbv'='uMbv | Open | Delete |
kjh' AND 5727=1498 AND 'nmqQ'='nmqQ | Open | Delete |
kjh' AND 7426=7426 AND 'Fjlg'='Fjlg | Open | Delete |
kjh' AND 8611=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(113)||CHR(106)||CHR(106)||CHR(118)||CHR(113)||(SELECT (CASE WHEN (8611=8611) THEN 1 ELSE 0 END) FRO | Open | Delete |
kjh' AND 8611=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(113)||CHR(106)||CHR(106)||CHR(118)||CHR(113)||(SELECT (CASE WHEN (8611=8611) THEN 1 ELSE 0 END) FROM DUAL)||CHR(113)||CHR(113)||CHR(122)||CHR(120)||CHR(113)||CHR(62))) FROM DUAL) AND 'QXBI'='QXBI | Open | Delete |
kjh' ORDER BY 1-- Aifn | Open | Delete |
kjh' ORDER BY 1-- iPvV | Open | Delete |
kjh') AND 1448=9534 AND ('TzXm'='TzXm | Open | Delete |
kjh') AND 2060=2060 AND ('JwAk'='JwAk | Open | Delete |
kjh') AND 3055=4968 AND ('igun'='igun | Open | Delete |
kjh') AND 7390 IN (SELECT (CHAR(113)+CHAR(106)+CHAR(106)+CHAR(118)+CHAR(113)+(SELECT (CASE WHEN (7390=7390) THEN CHAR(49) ELSE CHAR(48) END))+CHAR(113)+CHAR(113)+CHAR(122)+CHAR(120)+CHAR(113))) AND ('dgTV'='dgTV | Open | Delete |
kjh') AND 7426=7426 AND ('cRTV'='cRTV | Open | Delete |
kjh') AND 7954=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(113)||CHR(122)||CHR(107)||CHR(120)||CHR(113)||(SELECT (CASE WHEN (7954=7954) THEN 1 ELSE 0 END) FROM DUAL)||CHR(113)||CHR(106)||CHR(107)||CHR(122)||CHR(113)||CHR(62))) FROM DUAL) AND ('cHjZ'='cHjZ | Open | Delete |
kjh') AND 8864=CAST((CHR(113)||CHR(122)||CHR(107)||CHR(120)||CHR(113))||(SELECT (CASE WHEN (8864=8864) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(106)||CHR(107)||CHR(122)||CHR(113)) AS NUMERIC) AND ('YITY'='YITY | Open | Delete |
kjh') ORDER BY 1-- IuaH | Open | Delete |
kjh') ORDER BY 1-- osYG | Open | Delete |
kjh"'(,),().( | Open | Delete |
kjh) AND 6285=CAST((CHR(113)||CHR(106)||CHR(106)||CHR(118)||CHR(113))||(SELECT (CASE WHEN (6285=6285) THEN 1 ELSE 0 END))::text||(CHR(113)||CHR(113)||CHR(122)||CHR(120)||CHR(113)) AS NUMERIC) AND (7094=7094 | Open | Delete |
kjh) AND 7426=7426 AND (3850=3850 | Open | Delete |
kjh) AND 7954=(SELECT UPPER(XMLType(CHR(60)||CHR(58)||CHR(113)||CHR(122)||CHR(107)||CHR(120)||CHR(113)||(SELECT (CASE WHEN (7954=7954) THEN 1 ELSE 0 END) FROM DUAL)||CHR(113)||CHR(106)||CHR(107)||CHR(122)||CHR(113)||CHR(62))) FROM DUAL) AND (2635=2635 | Open | Delete |
kjh) AND EXTRACTVALUE(5914,CONCAT(0x5c,0x716a6a7671,(SELECT (ELT(5914=5914,1))),0x71717a7871)) AND (9337=9337 | Open | Delete |
kjh) AND EXTRACTVALUE(7241,CONCAT(0x5c,0x717a6b7871,(SELECT (ELT(7241=7241,1))),0x716a6b7a71)) AND (6110=6110 | Open | Delete |
kjh) ORDER BY 1-- Vwqu | Open | Delete |
kjh%20AND%207954=%28SELECT%20UPPER%28XMLType%28CHR%2860%29%7C%7CCHR%2858%29%7C%7CCHR%28113%29%7C%7CCHR%28122%29%7C%7CCHR%28107%29%7C%7CCHR%28120%29%7C%7CCHR%28113%29%7C%7C%28SELECT%20%28CASE%20WHEN%20%287954=7954%29%20THEN%201%20ELSE%200%20END%29%20FROM%2 | Open | Delete |
kjh%20AND%20EXTRACTVALUE%287241,CONCAT%280x5c,0x717a6b7871,%28SELECT%20%28ELT%287241=7241,1%29%29%29,0x716a6b7a71%29%29 | Open | Delete |
kjh%20AND%20EXTRACTVALUE%287241,CONCAT%280x5c,0x717a6b7871,%28SELECT%20%28ELT%287241=7241,1%29%29%29,0x716a6b7a71%29%29--%20fAHu | Open | Delete |
kjh%27%29%20AND%20EXTRACTVALUE%287241,CONCAT%280x5c,0x717a6b7871,%28SELECT%20%28ELT%287241=7241,1%29%29%29,0x716a6b7a71%29%29%20AND%20%28%27oZSA%27=%27oZSA | Open | Delete |
kjh%27FIFazt%3C%27%22%3EkJJxrd | Open | Delete |
kjh%29%20AND%209930=6330%20AND%20%289057=9057 | Open | Delete |
kjkk | Open | Delete |
kk | Open | Delete |
kkik | Open | Delete |
kkk | Open | Delete |
kkk#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
kkk#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
kkk#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
kkk#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
klk | Open | Delete |
kln | Open | Delete |
kmkm | Open | Delete |
kpok%C2%B4p | Open | Delete |
kpok%C3%82%C2%B4p | Open | Delete |
kpokôp | Open | Delete |
l | Open | Delete |
lj | Open | Delete |
lkj | Open | Delete |
lkk | Open | Delete |
ll | Open | Delete |
lmklk | Open | Delete |
lol | Open | Delete |
Lorenz du | Open | Delete |
Lorenz du stinker | Open | Delete |
loslos | Open | Delete |
m | Open | Delete |
Marcin | Open | Delete |
Memes | Open | Delete |
mjn | Open | Delete |
moiGHOY | Open | Delete |
moiGHOY - Resources/views/Advanced/doctrine-them | Open | Delete |
moj | Open | Delete |
mon exemple | Open | Delete |
mon putain de tableau | Open | Delete |
mon tableau | Open | Delete |
mon%20exemple | Open | Delete |
mon%20putain%20de%20tableau | Open | Delete |
mon%20tableau | Open | Delete |
mon%2520exemple | Open | Delete |
mp | Open | Delete |
mt | Open | Delete |
mytest | Open | Delete |
name | Open | Delete |
Names | Open | Delete |
ÑеÑÑ | Open | Delete |
new | Open | Delete |
new test | Open | Delete |
new_22 | Open | Delete |
New_test_2017-03_03 | Open | Delete |
New%20Array | Open | Delete |
new%2520test | Open | Delete |
nmn | Open | Delete |
nmn#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
nmn#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
nmn%23i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
nmn%23i27992875ec4286a24e569b1e015b0473 | Open | Delete |
nmn%23ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
Nouveau | Open | Delete |
o | Open | Delete |
oÃÂñ | Open | Delete |
oij | Open | Delete |
ojkj | Open | Delete |
ok | Open | Delete |
ordersCollection | Open | Delete |
oui | Open | Delete |
Ouiiiiiiiiiiii | Open | Delete |
Ouiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | Open | Delete |
Ouiiiiiiiiiiiiiiiiiiiiiiiilul | Open | Delete |
ouiou | Open | Delete |
pablo | Open | Delete |
PC | Open | Delete |
perses | Open | Delete |
perses%23ie025efbbb0738ed01a63b326c174233e | Open | Delete |
poiuytre | Open | Delete |
polo | Open | Delete |
pp | Open | Delete |
pppppii | Open | Delete |
pppppii#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
pppppii#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
pppppii#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
pppppii#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
pppppii#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
pppppii#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
pppppp | Open | Delete |
Premier element de test | Open | Delete |
project 1 | Open | Delete |
project%201 | Open | Delete |
Putin | Open | Delete |
qqq | Open | Delete |
Qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerrrrrrr | Open | Delete |
qsd | Open | Delete |
qsdfqsdf | Open | Delete |
quantite --1 | Open | Delete |
qwe | Open | Delete |
qwehgnhngh | Open | Delete |
qwert | Open | Delete |
qwery | Open | Delete |
qwery2 | Open | Delete |
r | Open | Delete |
rar | Open | Delete |
rdfgdf | Open | Delete |
Recipe | Open | Delete |
referees | Open | Delete |
rerererere | Open | Delete |
rerwrer | Open | Delete |
resr | Open | Delete |
RET | Open | Delete |
rewq | Open | Delete |
rr | Open | Delete |
rrrr | Open | Delete |
rrrr#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
rrrr%23i5784b3886628c4362594ffa43547edb4 | Open | Delete |
rtyr | Open | Delete |
ryhre | Open | Delete |
s | Open | Delete |
sa | Open | Delete |
saASD | Open | Delete |
saassa | Open | Delete |
sad.asdasd.sdsad | Open | Delete |
sadsad | Open | Delete |
sadsd | Open | Delete |
salut les | Open | Delete |
salut les gens | Open | Delete |
salut%20les%20gens | Open | Delete |
sam | Open | Delete |
samArray | Open | Delete |
sami | Open | Delete |
samples | Open | Delete |
scyx | Open | Delete |
sd | Open | Delete |
sdasd | Open | Delete |
sdasda | Open | Delete |
sdasdafs | Open | Delete |
sdczsdzsd | Open | Delete |
sdf | Open | Delete |
sdfsdf | Open | Delete |
sdsd | Open | Delete |
sed | Open | Delete |
seeme | Open | Delete |
seeme#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
seeme#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
seeme#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
seeme#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
seeme%23i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
seeme%23ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
select | Open | Delete |
seqtest | Open | Delete |
sf | Open | Delete |
sfd | Open | Delete |
sfdf | Open | Delete |
sfsa | Open | Delete |
sfsdfsd | Open | Delete |
sgdfs | Open | Delete |
someNewArray | Open | Delete |
someNewArray#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
someNewArray#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
someNewArray#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
someNewArray#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
someNewArray#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
someNewArray#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
someNewArray#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
someNewArray#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
sqd | Open | Delete |
sqsq | Open | Delete |
ss | Open | Delete |
sss | Open | Delete |
ssssssssssssssssssssssssss | Open | Delete |
suck my cock fgts | Open | Delete |
t11 | Open | Delete |
Ta mere la | Open | Delete |
Ta mere la grosse choin | Open | Delete |
Ta%20mere%20la%20grosse%20choin | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
tableau cellule unique | Open | Delete |
TATA | Open | Delete |
terst | Open | Delete |
tesss | Open | Delete |
TEST | Open | Delete |
TEST 2 | Open | Delete |
test name | Open | Delete |
test%20array | Open | Delete |
test2 | Open | Delete |
testarray | Open | Delete |
Teste | Open | Delete |
Tester | Open | Delete |
testing | Open | Delete |
testtest | Open | Delete |
tesy | Open | Delete |
Teszt | Open | Delete |
tet | Open | Delete |
texte | Open | Delete |
Thais | Open | Delete |
the | Open | Delete |
the test | Open | Delete |
thhtrh | Open | Delete |
this%20is%20an%20array | Open | Delete |
timo | Open | Delete |
tojo | Open | Delete |
toto | Open | Delete |
totototototo | Open | Delete |
trololo | Open | Delete |
try01 | Open | Delete |
tryy5 | Open | Delete |
tset | Open | Delete |
tttttz | Open | Delete |
tyrtyrtr | Open | Delete |
ui | Open | Delete |
uiu | Open | Delete |
ukh | Open | Delete |
undefined | Open | Delete |
uu | Open | Delete |
uuu | Open | Delete |
uytuuyt | Open | Delete |
Vai que da | Open | Delete |
Vai%20que%20da | Open | Delete |
Vai%2520que%2520da | Open | Delete |
vcbbc | Open | Delete |
vcvcvcvcvv | Open | Delete |
vh | Open | Delete |
Volta Dilm | Open | Delete |
Volta Dilma Fora% | Open | Delete |
Volta%2 | Open | Delete |
Volta%20Di | Open | Delete |
Volta%20Dilma%20Fo | Open | Delete |
Volta%20Dilma%20Fora% | Open | Delete |
Volta%20Dilma%20Fora%20Temer | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
Volta+Dilma+Fo | Open | Delete |
VRE | Open | Delete |
vv | Open | Delete |
w | Open | Delete |
wasda | Open | Delete |
why doctrine on delete not work? | Open | Delete |
why%20doctrine%20on%20delete%20not%20work%3F | Open | Delete |
Woop wooop | Open | Delete |
Woop%20wooop | Open | Delete |
ww | Open | Delete |
wxc%3Cwxc | Open | Delete |
Xbox Series X > PS5 | Open | Delete |
xcxcxcx | Open | Delete |
xv | Open | Delete |
xzcvxcv | Open | Delete |
yfcx | Open | Delete |
You | Open | Delete |
yut | Open | Delete |
yyyyyyyyyyyyyy | Open | Delete |
z | Open | Delete |
zDSfsdf | Open | Delete |
zdzd | Open | Delete |
zzz | Open | Delete |
zzzz1 | Open | Delete |
ролр | Open | Delete |
☘ Cela fonctionne ☘ | Open | Delete |
<?php
namespace Fuz\AppBundle\Base;
use Fuz\AppBundle\Entity\Value;
use Fuz\AppBundle\Form\ValueType;
use Fuz\QuickStartBundle\Base\BaseController as QuickStartBase;
use Symfony\Component\Form\Extension\Core\Type;
use Symfony\Component\HttpFoundation\Request;
class BaseController extends QuickStartBase
{
protected function createContextSample(Request $request, $name = 'form', $values = ['a', 'b', 'c'])
{
$data = ['values' => $values];
$form = $this
->get('form.factory')
->createNamedBuilder($name, Type\FormType::class, $data)
->add('values', Type\CollectionType::class, [
'entry_type' => Type\TextType::class,
'label' => 'Add, move, remove values and press Submit.',
'entry_options' => [
'label' => 'Value',
],
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'attr' => [
'class' => "{$name}-collection",
],
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
$name => $form->createView(),
"{$name}Data" => $data,
];
}
protected function createAdvancedContextSample(Request $request, $name = 'advancedForm')
{
$a = new Value('a');
$b = new Value('b');
$c = new Value('c');
$data = ['values' => [$a, $b, $c]];
$form = $this
->get('form.factory')
->createNamedBuilder($name, Type\FormType::class, $data)
->add('values', Type\CollectionType::class, [
'entry_type' => ValueType::class,
'label' => 'Add, move, remove values and press Submit.',
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
'attr' => [
'class' => "{$name}-collection",
],
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
$name => $form->createView(),
"{$name}Data" => $data,
];
}
}
<?php
namespace Fuz\AppBundle\Controller;
use Fuz\AppBundle\Base\BaseController;
use Fuz\AppBundle\Entity\Address;
use Fuz\AppBundle\Entity\Addresses;
use Fuz\AppBundle\Entity\Fancy;
use Fuz\AppBundle\Entity\FancyCollection;
use Fuz\AppBundle\Entity\Value;
use Fuz\AppBundle\Form\AddressesType;
use Fuz\AppBundle\Form\FancyCollectionType;
use Fuz\AppBundle\Form\MyArrayType;
use Fuz\AppBundle\Form\ValueType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Form\Extension\Core\Type;
use Symfony\Component\HttpFoundation\Request;
/**
* @Route("/advanced")
*/
class AdvancedController extends BaseController
{
/**
* Advanced usage
*
* You can reference your form collection in the view, instead of
* putting a selector in the form type.
*
* @Route("/mvcCompliance", name="mvcCompliance")
* @Template()
*/
public function mvcComplianceAction(Request $request)
{
$data = ['values' => ['a', 'b', 'c']];
$form = $this
->createFormBuilder($data)
->add('values', Type\CollectionType::class, [
'entry_type' => Type\TextType::class,
'label' => 'Add, move, remove values and press Submit.',
'entry_options' => [
'label' => 'Value',
],
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
// 'attr' => array (
// 'class' => 'my-selector', <--- Not MVC compliant!
// ),
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
'form' => $form->createView(),
'data' => $data,
];
}
/**
* Advanced usage
*
* A custom form theme helps define button's layout and positions as and where you want.
*
* @Route("/customFormTheme", name="customFormTheme")
* @Template()
*/
public function customFormThemeAction(Request $request)
{
$data = ['values' => [new Value('a'), new Value('b'), new Value('c')]];
$form = $this
->createFormBuilder($data)
->add('values', Type\CollectionType::class, [
'entry_type' => ValueType::class,
'label' => 'Add, move, remove values and press Submit.',
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
'attr' => [
'class' => 'collection',
],
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
'form' => $form->createView(),
'data' => $data,
];
}
/**
* Advanced usage
*
* Same demo as above, but with the add button located at the bottom of
* the form instead of close to each field.
*
* @Route("/customFormThemeAddBottom", name="customFormThemeAddBottom")
* @Template()
*/
public function customFormThemeAddBottomAction(Request $request)
{
return $this->customFormThemeAction($request);
}
/**
* Advanced usage
*
* Collection of collections are useful on the most dynamic forms, and a good
* way to test if the plugin is working as expected too.
*
* @Route("/collectionOfCollections", name="collectionOfCollections")
* @Template()
*/
public function collectionOfCollectionsAction(Request $request)
{
$data = [
'collections' => [
[new Value('a'), new Value('b'), new Value('c')],
[new Value('d'), new Value('e'), new Value('f')],
[new Value('g'), new Value('h'), new Value('i')],
],
];
$form = $this
->get('form.factory')
->createNamedBuilder('form', Type\FormType::class, $data)
->add('collections', Type\CollectionType::class, [
'entry_type' => Type\CollectionType::class,
'label' => 'Add, move, remove collections',
'entry_options' => [
'entry_type' => ValueType::class,
'label' => 'Add, move, remove values',
'entry_options' => [
'label' => 'Value',
],
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__children_name__',
'attr' => [
'class' => 'child-collection',
],
],
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__parent_name__',
'attr' => [
'class' => 'parent-collection',
],
])
->add('submit', Type\SubmitType::class)
->getForm()
;
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
'form' => $form->createView(),
'data' => $data,
];
}
/**
* Advanced usage
*
* Looks like there are weird behaviours with Doctrine:
* https://github.com/ninsuo/symfony-collection/issues/7
* Let's test that live!
*
* ... hmm, doesn't look bad anyway
*
* @Route(
* "/usageWithDoctrine/{name}",
* name = "usageWithDoctrine",
* defaults = {
* "name" = "example"
* }
* )
* @Template()
*/
public function usageWithDoctrineAction(Request $request, $name)
{
$repo = $this->getDoctrine()->getRepository('FuzAppBundle:MyArray');
$data = $repo->findOneByName($name);
if (is_null($data)) {
$data = $repo->create($name);
}
$form = $this->createForm(MyArrayType::class, $data);
$form->handleRequest($request);
$form->get('save')->isClicked() && $form->isValid() && $repo->save($data);
return [
'names' => $repo->getArrayNames(),
'form' => $form->createView(),
'data' => $data,
];
}
/**
* Related to usageWithDoctrine demo
*
* @Route(
* "/usageWithDoctrineDelete/{name}",
* name = "usageWithDoctrineDelete"
* )
*/
public function usageWithDoctrineDeleteAction(Request $request, $name)
{
$repo = $this->getDoctrine()->getRepository('FuzAppBundle:MyArray');
if (!is_null($data = $repo->findOneByName($name))) {
$repo->delete($data);
}
return $this->forward('FuzAppBundle:Advanced:usageWithDoctrine', [
'name' => 'example',
]);
}
/**
* A form having a theme and containing several fields
*
* @Route(
* "/formHavingSeveralFields",
* name = "formHavingSeveralFields"
* )
* @Template()
*/
public function formHavingSeveralFieldsAction(Request $request)
{
$address = new Address();
$address->setName('Mickael Steller');
$address->setCompany('fuz.org');
$address->setStreet('41 rue de la Paix');
$address->setPostalcode('75002');
$address->setCity('Paris');
$address->setCountry('France');
$addresses = new Addresses();
$addresses->getAddresses()->add($address);
$form = $this->createForm(AddressesType::class, $addresses);
if ($request->isMethod('POST')) {
$form->handleRequest($request);
}
return [
'form' => $form->createView(),
'data' => $addresses,
];
}
/**
* Another example of form theme
*
* @Route(
* "/fancyFormTheme",
* name = "fancyFormTheme"
* )
* @Template()
*/
public function fancyFormThemeAction(Request $request)
{
$fancyCollection = new FancyCollection();
for ($i = 0; $i < 3; $i++) {
$fancy = new Fancy();
$fancyCollection->getFancyCollection()->add($fancy);
}
$form = $this->createForm(FancyCollectionType::class, $fancyCollection);
$form->handleRequest($request);
if ($form->isValid()) {
$data = $form->getData();
}
return [
'form' => $form->createView(),
'data' => $fancyCollection,
];
}
}
<?php
namespace Fuz\AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* MyArray
*
* @ORM\Table(
* name="my_array",
* uniqueConstraints={@ORM\UniqueConstraint(name="name_idx", columns={"name"})}
* )
* @ORM\Entity(repositoryClass="Fuz\AppBundle\Repository\MyArrayRepository")
*/
class MyArray
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
protected $name;
/**
* @var ArrayCollection
*
* @ORM\OneToMany(targetEntity="MyElement", mappedBy="array", cascade={"all"}, orphanRemoval=true)
*/
protected $elements;
public function __construct()
{
$this->elements = new ArrayCollection();
}
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
public function getElements()
{
return $this->elements;
}
}
<?php
namespace Fuz\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* MyElement
*
* @ORM\Table(name="my_element"),
* @ORM\Entity
*/
class MyElement
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var MyArray
*
* @ORM\ManyToOne(targetEntity="MyArray", inversedBy="elements")
* @ORM\JoinColumn(name="my_array_id", referencedColumnName="id")
*/
protected $array;
/**
* @var string
*
* @ORM\Column(name="value", type="string", length=255)
*/
protected $value;
public function setId($id)
{
$this->id = $id;
return $this;
}
public function getId()
{
return $this->id;
}
public function setArray(MyArray $array)
{
$this->array = $array;
return $this;
}
public function getArray()
{
return $this->array;
}
public function setValue($value)
{
$this->value = $value;
return $this;
}
public function getValue()
{
return $this->value;
}
}
<?php
namespace Fuz\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class MyArrayType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', TextType::class, [
'label' => 'Array name:',
]);
$builder->add('elements', CollectionType::class, [
'label' => 'Add an element...',
'entry_type' => MyElementType::class,
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'required' => false,
'by_reference' => true,
'delete_empty' => true,
'attr' => [
'class' => 'doctrine-sample',
],
]);
$builder->add('save', SubmitType::class, [
'label' => 'Save this array',
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Fuz\AppBundle\Entity\MyArray',
]);
}
public function getBlockPrefix()
{
return 'my_array';
}
}
<?php
namespace Fuz\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class MyElementType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('value', TextType::class, [
'required' => false,
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'Fuz\AppBundle\Entity\MyElement',
]);
}
public function getBlockPrefix()
{
return 'my_element';
}
}
<?php
namespace Fuz\AppBundle\Repository;
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
use Doctrine\ORM\EntityRepository;
use Fuz\AppBundle\Entity\MyArray;
/**
* MyArrayRepository.
*/
class MyArrayRepository extends EntityRepository
{
public function create($name)
{
$data = new MyArray();
$data->setName($name);
try {
$this->_em->persist($data);
$this->_em->flush();
} catch (UniqueConstraintViolationException $e) {
return null;
}
return $data;
}
public function save(MyArray $data)
{
foreach ($data->getElements() as $element) {
$element->setArray($data);
}
try {
$this->_em->persist($data);
$this->_em->flush();
} catch (UniqueConstraintViolationException $e) {
return null;
}
return $data;
}
public function getArrayNames()
{
$arrays = $this
->_em
->createQuery("
SELECT arr.name
FROM Fuz\AppBundle\Entity\MyArray arr
")
->execute();
$names = [];
foreach ($arrays as $array) {
$names[] = $array['name'];
}
return $names;
}
public function delete(MyArray $data)
{
foreach ($data->getElements() as $element) {
$this->_em->remove($element);
}
$this->_em->remove($data);
$this->_em->flush();
}
}
{% block my_element_label %}{% endblock %}
{% block my_element_errors %}{% endblock %}
{% block my_element_widget %}
<div class="row">
<div class="col-md-7">
{{ form_widget(form.value) }}
</div>
<div class="col-md-2">
<a href="#" class="collection-up btn btn-default">Up</a>
<a href="#" class="collection-down btn btn-default">Down</a>
</div>
<div class="col-md-2">
<a href="#" class="collection-remove btn btn-default">Remove</a>
<a href="#" class="collection-add btn btn-default">Add</a>
</div>
<div class="col-md-1">
<a href="#" class="collection-duplicate btn btn-default">Duplicate</a>
</div>
</div>
{% endblock %}
{% extends 'FuzAppBundle::layout.html.twig' %}
{% block extra_js %}
<script src="{{ asset('js/jquery.collection.js') }}"></script>
{% endblock %}
{% block title %}Advanced usage: example with Doctrine{% endblock %}
{% block body %}
<h2>{{ block('title') }}</h2>
<p>
That's not really an <i>advanced</i> topic, but the sample will be a bit hard to read (as it takes many files),
so let's say it targets more experienced Symfony users.
</p>
<p>
In this demo, we're displaying a MyArray of MyElements, both persisted into the database. The MyArray entity
only have an id and a name, and MyElement has id, MyArray's id and a value. This is quite the same as we seen
in all demos, but persisted.
</p>
<div class="text-center">
<input type="button" id="new" class="btn btn-default" value="Create new array"/>
</div>
{%
form_theme form
'jquery.collection.html.twig'
'FuzAppBundle:Advanced:doctrine-theme.html.twig'
%}
{{ form(form) }}
<hr/>
{% if names|length %}
Existing arrays:
<table class="table">
<thead>
<th>Name</th>
<th>Open</th>
<th>Delete</th>
</thead>
<tbody>
{% for name in names %}
<tr>
<td>{{ name }}</td>
<td>
{% if data.name != name %}<a href="{{ path('usageWithDoctrine', {'name': name}) }}">Open</a>{% endif %}
</td>
<td><a href="{{ path('usageWithDoctrineDelete', {'name': name}) }}">Delete</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{{
tabs([
'Base/BaseController.php',
'Controller/AdvancedController.php',
'Resources/views/Advanced/usageWithDoctrine.html.twig',
'Resources/views/Advanced/doctrine-theme.html.twig',
'Entity/MyArray.php',
'Form/MyArrayType.php',
'Entity/MyElement.php',
'Form/MyElementType.php',
'Repository/MyArrayRepository.php',
])
}}
{% endblock %}
{% block script %}
<script type="text/javascript">
// only useful for the "new" button...
$('#new').on('click', function() {
var name = prompt("Which name would you like to use?");
if (name) {
var uri = '{{ path('usageWithDoctrine', {'name': 'a'}) }}';
document.location = uri.substr(0, uri.length - 1) + encodeURIComponent(name);
}
});
$('.doctrine-sample').collection();
</script>
{% endblock %}