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 |
_____ | Open | Delete |
__________________________________________ | Open | Delete |
____________________________1 test | Open | Delete |
_________AAAAAAAAAAAAA_______ | Open | Delete |
_________coucou | Open | Delete |
_______aaaazz | Open | Delete |
___array___ | Open | Delete |
___m | Open | Delete |
__EDLP_7-0_ | Open | Delete |
--- | Open | Delete |
---#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
---#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
---#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
---#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
---#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
---#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
? | Open | Delete |
' | Open | Delete |
(SELECT (CASE WHEN (4626=9556) THEN 'kjh' ELSE (SELECT 9556 UNION SELECT 9237) END)) | Open | Delete |
(SELECT (CASE WHEN (6190=5092) THEN 'kjh' ELSE (SELECT 5092 UNION SELECT 3869) END)) | Open | Delete |
@12 | Open | Delete |
#456 | Open | Delete |
#7233333 | Open | Delete |
#72uuuu | Open | Delete |
#AlgoSucks | Open | Delete |
%237233333 | Open | Delete |
%2372uuuu | Open | Delete |
%2391 | 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 | Open | Delete |
%252372uuuu#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
%252372uuuu#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
%252372uuuu#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
%252372uuuu#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
%252372uuuu#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
%252391 | Open | Delete |
%253F | Open | Delete |
%253F#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
%253F#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
%253F#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
%253F#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
%2E | Open | Delete |
%3Csdsads | Open | Delete |
%3F | Open | Delete |
%C3%83%C2%B1lkjlkj | Open | Delete |
%C3%B1sfkjaldsa | Open | Delete |
< | Open | Delete |
<?php echo ' i don't like it ' | 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 |
000tom | Open | Delete |
001122334455 | Open | Delete |
11 | Open | Delete |
11#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
11#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
11#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
11#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
11#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
11#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
11#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
1111 | Open | Delete |
1111#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
1111#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
1111#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
1111#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
11111111111111 | Open | Delete |
1111111111111111111111111111111111 | Open | Delete |
1111111111111111111111111111111111#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
1111111111111111111111111111111111#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
1111111111111111111111111111111111#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
1111111111111111111111111111111111#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
1111111111111111111111111111111111#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
1121 | Open | Delete |
12 | Open | Delete |
121113 | Open | Delete |
121113aaaaa | Open | Delete |
123 | Open | Delete |
123123 | Open | Delete |
123333 | Open | Delete |
12345 | Open | Delete |
123blue | Open | Delete |
1241 | Open | Delete |
1aa | Open | Delete |
2' | Open | Delete |
222222 | Open | Delete |
2232323 | Open | Delete |
3 | Open | Delete |
32 | Open | Delete |
33 | Open | Delete |
454 | Open | Delete |
4545 | Open | Delete |
456 | Open | Delete |
63 | Open | Delete |
78 | Open | Delete |
86787 | Open | Delete |
88 | Open | Delete |
8888 | Open | Delete |
890 | Open | Delete |
8chan.org | Open | Delete |
969 | Open | Delete |
99 | Open | Delete |
a | Open | Delete |
ñlkjlkj | Open | Delete |
â Cela fonctionne â | Open | Delete |
A1 | Open | Delete |
a2 | Open | Delete |
aa | Open | Delete |
ñsfkjaldsa | Open | Delete |
Aaa | Open | Delete |
ÃÂñlkjlkj | Open | Delete |
ÃÂñsfkjaldsa | Open | Delete |
aaaaaaa | Open | Delete |
ÃÂõÃÂà| Open | Delete |
aaamine22222#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
aaamine22222#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
aaamine22222#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
aaamine22222#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
aaamine22222#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
aaamine22222#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
aarzarzample | Open | Delete |
aasdasd | Open | Delete |
Abc | Open | Delete |
adasdada | Open | Delete |
adfadf | Open | Delete |
adfadf'A=0 | Open | Delete |
adrian | Open | Delete |
adsada | Open | Delete |
aee | Open | Delete |
Alpha | Open | Delete |
alsi | Open | Delete |
Array | Open | Delete |
arrayGilmry | Open | Delete |
articulo | Open | Delete |
asas | Open | Delete |
asD | Open | Delete |
asdaexample | Open | Delete |
asdas | Open | Delete |
asdasd#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
asdasd#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
asdasd#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
asdasd#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
asdasd#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
asdasd#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
asdasdadasd | Open | Delete |
asdasdadasd#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
asdasdadasd#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
asdasdadasd#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
asdasdadasd#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
asdasddadsd | Open | Delete |
AU | Open | Delete |
azazaz | Open | Delete |
Aze | Open | Delete |
balala | Open | Delete |
bam | Open | Delete |
bbb | Open | Delete |
bbbbbbbbbbb | Open | Delete |
bc | Open | Delete |
bcvbcvb | Open | Delete |
bjfhj | Open | Delete |
bjfhj#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
bjfhj#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
bjfhj#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
bla | Open | Delete |
blah#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
blah#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
blah#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
blah#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
Bra | Open | Delete |
bxvbvx | Open | Delete |
caracas | Open | Delete |
cccio | Open | Delete |
Cela fonctionne | Open | Delete |
Cela fonctionne pas | Open | Delete |
Cmucik | Open | Delete |
cnes | Open | Delete |
Cuves | Open | Delete |
cvSDFSD | Open | Delete |
cx%3Cwc | Open | Delete |
cx<wc | Open | Delete |
d | Open | Delete |
D#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
D#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
D#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
D#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
D#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
D#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
D#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
das | Open | Delete |
dasd | Open | Delete |
dasf | Open | Delete |
dd | Open | Delete |
ddd | Open | Delete |
dddd | Open | Delete |
delete_empty | Open | Delete |
dfa | Open | Delete |
dfa#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
dfa#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
dfa#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
dfa#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
dfa#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
dfdfdf | Open | Delete |
dfgdfg | Open | Delete |
dfvds | Open | Delete |
dfzre | Open | Delete |
dgdgdg | Open | Delete |
dgh | Open | Delete |
dghdfgdfgd | Open | Delete |
diarill | Open | Delete |
Doom | Open | Delete |
drgd | Open | Delete |
dsdfgsdfgdf | Open | Delete |
dsf | Open | Delete |
dsfsdfs | Open | Delete |
dsvfdsfg] | Open | Delete |
dsvfdsfg%5D | Open | Delete |
e | Open | Delete |
ee | Open | Delete |
ejemplito 2 | Open | Delete |
ejemplo 2017-11-23 | Open | Delete |
eqweqwe | Open | Delete |
er | Open | Delete |
erwgfu%C4%B1gj8hl%C4%B1 | Open | Delete |
erwgfuıgj8hlı | Open | Delete |
erwgfuıgj8hlı | Open | Delete |
ewe | Open | Delete |
exadasdas | Open | Delete |
exampldfdfe | Open | Delete |
example | Open | Delete |
example exam | Open | Delete |
example Radu | Open | Delete |
example.0 | Open | Delete |
example+exam | Open | Delete |
example123#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
example123#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
example123#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
example123#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
example123#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
example22222222222222 | Open | Delete |
example4 | Open | Delete |
exampleasdas | Open | Delete |
exampleasfsafasf#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
exampleasfsafasf#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
exampleasfsafasf#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
exampleasfsafasf#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
exampleasfsafasf#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
exampleaz | Open | Delete |
exampled | Open | Delete |
exampledds | Open | Delete |
exampledsdsdda | Open | Delete |
exampledsdsddasds,sad,a,d,as,d,asd,asd | Open | Delete |
examplee | Open | Delete |
exampleeaze | Open | Delete |
exampleede | Open | Delete |
exampleeeeeeeeeeeee | Open | Delete |
examplefffffffffffff | Open | Delete |
examplehfghfhfgfg | Open | Delete |
examplehjkhjk | Open | Delete |
examplejjj | Open | Delete |
examplemmm | Open | Delete |
examplemmmm | Open | Delete |
examplenhnhd | Open | Delete |
examplertyrtyrty | Open | Delete |
examplesa | Open | Delete |
examplesadfasfasdf | Open | Delete |
examplesafsaf | Open | Delete |
examplesafsaf;sfsf | Open | Delete |
examplesafsafsfsf | Open | Delete |
examplesdddd | Open | Delete |
exampletestsf sdf sd sd | Open | Delete |
examplew | Open | Delete |
examplexzasca | Open | Delete |
exdedededdedeeample | Open | Delete |
Existing arr | Open | Delete |
Existing arrays: | Open | Delete |
eze | Open | Delete |
familly | Open | Delete |
fat | Open | Delete |
fc | Open | Delete |
Fda | Open | Delete |
fdasfdaF | Open | Delete |
fdf#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
fdf#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
fdf#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
fdf#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
fdf#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
fdf#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
fdgfdgfdgfdgfd | Open | Delete |
fdgfgsdf | Open | Delete |
fdsdf | Open | Delete |
fdsfds | Open | Delete |
fe | Open | Delete |
fff | Open | Delete |
ffff | Open | Delete |
ffsss | Open | Delete |
fg | Open | Delete |
fgfdg | Open | Delete |
fgfdgdgdf | Open | Delete |
fgfdgfdgdg | Open | Delete |
fghjk, | Open | Delete |
fghjkl | Open | Delete |
fgt | Open | Delete |
firrra | Open | Delete |
fr | Open | Delete |
frfrf | Open | Delete |
fsdfd | Open | Delete |
fsgv | Open | Delete |
fuck you | Open | Delete |
gbfgbf | Open | Delete |
gdfg#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
gdfg#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
geht nicht | Open | Delete |
gfgddgfd | Open | Delete |
gg | Open | Delete |
Ggg | Open | Delete |
GGI | Open | Delete |
ghj | Open | Delete |
ghjk#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
ghjk#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
ghjk#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
ghk | Open | Delete |
Ghy | Open | Delete |
Group B | Open | Delete |
Group%20B | Open | Delete |
Group%2BC | Open | Delete |
Group%2BC#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
Group%2BC#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
Group%2BC#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
gufc fucvuy | Open | Delete |
gufc fucvuy dd | Open | Delete |
Hallo | Open | Delete |
hbhbhb | Open | Delete |
hello | Open | Delete |
Hello world | Open | Delete |
Hello World ! | Open | Delete |
Hello%20World%20! | Open | Delete |
heof | Open | Delete |
HEYY :D | Open | Delete |
HEYY%2520:D#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
HEYY%2520:D#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
HEYY%2520:D#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
HEYY%2520:D#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
hhmm | Open | Delete |
hi bitches | Open | Delete |
hjh | Open | Delete |
hjvhj | Open | Delete |
hoho | Open | Delete |
hrthrh | Open | Delete |
htrhrh | Open | Delete |
hyhy | Open | Delete |
iii | Open | Delete |
ilesh | Open | Delete |
iooi | Open | Delete |
iujjj | Open | Delete |
iziokisio | Open | Delete |
j | Open | Delete |
jbnn | Open | Delete |
jghjghjgj | Open | Delete |
jhgfgh | Open | Delete |
jk | Open | Delete |
jkbhkjh | Open | Delete |
jtujjk | Open | Delete |
julio | Open | Delete |
kaas | Open | Delete |
kfhk | Open | Delete |
khj | Open | Delete |
khj#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
khj#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
khj#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
khj#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
kiki | Open | Delete |
kj | Open | Delete |
kjh AND 1091=5857 | Open | Delete |
kjh AND 2171=2112-- yWqk | Open | Delete |
kjh AND 4281=2310-- NRaM | 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)-- Kpcm | 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))) | Open | Delete |
kjh AND 9650=6116 | 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))-- fAHu | Open | Delete |
kjh ORDER BY 1-- MwCf | Open | Delete |
kjh ORDER BY 1-- PNBN | Open | Delete |
kjh,),..('"). | Open | Delete |
kjh' AND 1967=4628 AND 'WfvI'='WfvI | Open | Delete |
kjh' AND 5727=1498 AND 'nmqQ'='nmqQ | 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 'pbYL'='pbYL | 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 'HQRy'='HQRy | 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))) AND 'mDsE'='mDsE | Open | Delete |
kjh' AND EXTRACTVALUE(5914,CONCAT(0x5c,0x716a6a7671,(SELECT (ELT(5914=5914,1))),0x71717a7871)) AND 'GCxm'='GCxm | Open | Delete |
kjh' AND EXTRACTVALUE(7241,CONCAT(0x5c,0x717a6b7871,(SELECT (ELT(7241=7241,1))),0x716a6b7a71)) AND 'NwvR'='NwvR | Open | Delete |
kjh' ORDER BY 1-- iPvV | Open | Delete |
kjh') AND 7426=7426 AND ('cRTV'='cRTV | Open | Delete |
kjh') AND EXTRACTVALUE(7241,CONCAT(0x5c,0x717a6b7871,(SELECT (ELT(7241=7241,1))),0x716a6b7a71)) AND ('oZSA'='oZSA | Open | Delete |
kjh) AND 3185=2112 AND (3791=3791 | 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 (2379=2379 | 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 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 (7499=7499 | 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 (5114=5114 | 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))) AND (2205=2205 | Open | Delete |
kjkjkj | Open | Delete |
kjkk | Open | Delete |
kkik | Open | Delete |
kkk#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
kkk#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
kkk#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
kkk#ibcac9f4c58199eeaa7ba5c7750b8434b | Delete | |
kkk#ie025efbbb0738ed01a63b326c174233e | Open | Delete |
kljlk | Open | Delete |
klk | Open | Delete |
kln | Open | Delete |
kool | Open | Delete |
kpok | Open | Delete |
kpok%C2%B4p | Open | Delete |
l | Open | Delete |
lkj | Open | Delete |
lkk | Open | Delete |
ll | Open | Delete |
lol | Open | Delete |
Lorenz du stinker | Open | Delete |
m | Open | Delete |
mec | Open | Delete |
Memes | Open | Delete |
mjn | Open | Delete |
mm | Open | Delete |
mon putain de tableau | Open | Delete |
mon%20putain%20de%20tableau | Open | Delete |
mp | Open | Delete |
myarr | Open | Delete |
n | Open | Delete |
name | Open | Delete |
Names | Open | Delete |
New Array | Open | Delete |
new test | Open | Delete |
New_test_2017- | Open | Delete |
New_test_2017-03_03 | Open | Delete |
New%20Array | Open | Delete |
nmn | Open | Delete |
nmn#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
nmn#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
nmn#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
nmn#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
nnn | Open | Delete |
nnnnn | Open | Delete |
o | Open | Delete |
oezjfez | Open | Delete |
olaboga | Open | Delete |
ordersCollection | Open | Delete |
Ouiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | Open | Delete |
ouiou | Open | Delete |
Pepa | Open | Delete |
peppo | Open | Delete |
perses#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
perses#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
perses#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
perses#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
poiuytre | Open | Delete |
polo | Open | Delete |
pppppii | Open | Delete |
pppppii#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
pppppii#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
pppppii#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
pppppp | Open | Delete |
project 1 | Open | Delete |
Putin | Open | Delete |
qqq | Open | Delete |
Qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerrrrrrr | Open | Delete |
qsd | Open | Delete |
qsdfqsdf | Open | Delete |
qwe | Open | Delete |
qwehgnhngh | Open | Delete |
qweqw | Open | Delete |
qwert | Open | Delete |
rdfgdf | Open | Delete |
Recipe | Open | Delete |
rerwrer | Open | Delete |
resr | Open | Delete |
RET | Open | Delete |
rr | Open | Delete |
rrrr#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
rrrr#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
rtyr | Open | Delete |
RV | Open | Delete |
saASD | Open | Delete |
saassa | Open | Delete |
sadsad | Open | Delete |
sadsd | Open | Delete |
sam | Open | Delete |
sami | Open | Delete |
sample | Open | Delete |
scyx | Open | Delete |
sd | Open | Delete |
sdasdafs | Open | Delete |
sdczsdzsd | Open | Delete |
sdf | Open | Delete |
sdfsdfsd | Open | Delete |
sdg | Open | Delete |
sdsd'A=0 | Open | Delete |
sed | Open | Delete |
seeme | Open | Delete |
seeme#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
seeme#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
seeme#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
seeme#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
seqtest | Open | Delete |
sf | Open | Delete |
sfd | Open | Delete |
sfdf | Open | Delete |
sfsdfsd | Open | Delete |
some new array | Open | Delete |
someNewArray#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
someNewArray#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
someNewArray#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
sqd | Open | Delete |
ss | Open | Delete |
ssssssssssssssssssssssssss | Open | Delete |
Starojitski | Open | Delete |
STASI | Open | Delete |
suck my co | Open | Delete |
suck my cock fgts | Open | Delete |
suck%20my%20cock%20fgts | Open | Delete |
t11 | Open | Delete |
Ta mere la grosse choin | Open | Delete |
Ta mere la grosse tchoin | Open | Delete |
Ta%20mere%20la%20grosse%20choin | Open | Delete |
Ta%20mere%20la%20grosse%20tchoin | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i1dcd1cbb0d8eeb1fd3a32dc2aa9c8013 | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i21ef661e2506d5d0e513dce166c17d49 | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i5784b3886628c4362594ffa43547edb4 | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#i8c18088ea4d8dd4d6e5e986bceed35da | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#ibcac9f4c58199eeaa7ba5c7750b8434b | Open | Delete |
Ta%2520mere%2520la%2520grosse%2520choin#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
tes | Open | Delete |
test nours | Open | Delete |
test34'A=0 | Open | Delete |
TEST912 | Open | Delete |
Teste | Open | Delete |
testing | Open | Delete |
testname | Open | Delete |
testtest | Open | Delete |
texte | Open | Delete |
Tfr | Open | Delete |
the | Open | Delete |
the%20test | Open | Delete |
thhtrh | Open | Delete |
tojo | Open | Delete |
toti | Open | Delete |
toto | Open | Delete |
trololo | Open | Delete |
tryy5 | Open | Delete |
ttt | Open | Delete |
tyrtyrtrhgfhgfhg | Open | Delete |
ukh | Open | Delete |
undefined | Open | Delete |
uu | Open | Delete |
uytuuyt | Open | Delete |
Vai que da | Open | Delete |
Vai%20que%20da | Open | Delete |
Vai%2520que%2520da | Open | Delete |
vcvcvcvcvv | Open | Delete |
vdsvd | Open | Delete |
vffv | Open | Delete |
Volta Di | Open | Delete |
Volta Dilma Fo | Open | Delete |
Volta Dilma Fora Temer | Open | Delete |
Volta%20Di | Open | Delete |
Volta%20Dilma%20Fora%20Temer | Open | Delete |
Volta%2520Dilma%2520Fo | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#i1097c8b84b58a65ed6ec7b4f0da3ab67 | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#i2 | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#i27992875ec4286a24e569b1e015b0473 | Open | Delete |
Volta%2520Dilma%2520Fora%2520Temer#ic3ee8978c60737ab5d058b5a3f6a1b09 | Open | Delete |
Volta+Dilma+Fo | Open | Delete |
vv | Open | Delete |
vxvxcvxcv | Open | Delete |
w | Open | Delete |
werweexample | Open | Delete |
why doctrine | Open | Delete |
why%20doctrine%20on%20delete%20not%20work | Open | Delete |
why%20doctrine%20on%20delete%20not%20work%3F | Open | Delete |
Woop wooop | Open | Delete |
www | Open | Delete |
xcxcxcx | Open | Delete |
xv | Open | Delete |
xx | Open | Delete |
xxx | Open | Delete |
xy | Open | Delete |
yfcx | Open | Delete |
yiktikrtr | Open | Delete |
yy | Open | Delete |
yyyyyyyyyyyyyy | Open | Delete |
z | Open | Delete |
zDSfsdf | Open | Delete |
zdzd | Open | Delete |
zzz | Open | Delete |
zzzz | 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 %}