ublaboo/datagrid: po update na PHP8 nefunguje filtrování
- Polki
- Člen | 553
Ahoj, tak myslím, že nadpis říká vše.
Před aktualizací vše fungovalo, ale jakmile se na serveru změnilo PHP7.4 na PHP8, spustil se composer update, tak od té doby nefunguje filtrování.
Když vyplním políčko filtru, tak se sice ajax request vykoná, ale vykoná se GET metodou, přičemž před aktualizací se vykonal POST metodou. Jiný rozdíl neregistruji.
Nápady?
- Pavel Kravčík
- Člen | 1195
Zkusil bych ručně aktualizovat assety (composer Ti je nezkopíruje). S PHP8 jsme přešli na naja a filtrování funguje bezvadně.
- Pavel Kravčík
- Člen | 1195
Pokud pustíš composer a nepoužíváš třeba webpack, tak je občas nutné tyhle soubory překopírovat.
A v PHP8 filtrování funguje. To byl druhý point (testováno s Naja).
- Polki
- Člen | 553
Pokud pustíš composer a nepoužíváš třeba webpack, tak je občas nutné tyhle soubory překopírovat.
Jo tak.. Jakože se změnily CSS nebo JS soubory a já je musím nahrát do
www složky?
WebPack nepoužívám a ani nepoužívám běžně datagrid. Mám na to svoje
komponenty, ale na tomto projektu konkrétním byl datagrid použit od
bývalého programátora a proto to musím řešit.
Díky odzkouším.
- Polki
- Člen | 553
Hmm tak chyba musí být ještě někde jinde…
Zkoušel jsem to znovu a request se už najednou dělá POSTem aniž bych cokoliv změnil, obsah postu je takový:
array(
'filter' => array(
'id' => '473',
'title' => '',
'publish' => '',
),
'perPage' => '10',
'_do' => 'articleGrid-filter-submit',
'perPage_submit' => 'Change',
)
Což je správně, ale v response serveru není jen ten 1 řádek s ID odpovídající tomu 1 filtru, ale jsou tam všechny řádky, jakoby se filtr vůbec neaplikoval…
Tedy není problém v assetech, ale nejspíš někde v core DataGridu.
Editoval Polki (10. 9. 2021 16:20)
- Polki
- Člen | 553
Tak změna. Nefunguje to s Nette Forms 3.1.
Procházel jsem kód a narazil jsem, že se data získávají pomocí funkce
getValues
, což vrací prázdný ArrayHash.
Pomohlo změnit tento řádek na toto:
$values = (array) $form->getUntrustedValues(ArrayHash::class);
Otázka zní: Je to chyba, nebo jsem udělal někde něco špatně já?
Editoval Polki (29. 9. 2021 0:36)
- Michal Kumžák
- Člen | 106
Na to ti mohu poradit toto https://blog.nette.org/…te-forms-3-1. Možností je, že je vypnutá validace, ale pak právě nefunguje getValues.
- Pavel Kravčík
- Člen | 1195
@Polki: Zkus poslat něco na kafe vývojářům, třeba na to mrknou. https://github.com/…te/datagrid/
Editoval Pavel Kravčík (30. 9. 2021 7:40)
- Michal Kumžák
- Člen | 106
Polki napsal(a):
@MichalKumžák To jsem samozřejmě četl. Otázka je, co s tím mám dělat, když není problém v mém kódu, ale v kódu rozšíření ublaboo/datagrid
Pokud je chyba opravdu v datagridu, tak napiš opravný patch a pošli autorům :-P
- KristianSubweb
- Člen | 146
Pavel Kravčík napsal(a):
Pokud pustíš composer a nepoužíváš třeba webpack, tak je občas nutné tyhle soubory překopírovat.
A v PHP8 filtrování funguje. To byl druhý point (testováno s Naja).
Ahoj riešim akurát datagrid na php 8.0.
Pre colum text pridám možnosť filtrovať nad týmto stĺpcom. Akonáhle začnem niečo do filtra písať tak síce to daný string respektíve riadok vyhladá len hned ako dopíšem to filtrované slova tak sa automaticky aj vymaže s toho input filtra. Pls neviete čo by s tým mohlo byť nestretol sa stým niekto ? Za odpovede vopred ďakujem.