ArgumentCountError ve Form::getUntrustedValues()
- m.brecher
- Generous Backer | 871
Ahoj,
narazil jsem na ladění na takovýto problém:
Potřebuji si vytrasovat jak to vypadá s hodnotou null sloupce databázové
tabulky a tak čistě z testovacích důvodů se potřebuji podívat jaká data
jsou po inicializaci $form->setDefaults($data)
ve
formuláři – konkrétně co se stane s hodnotou null (ještě před
submitem formuláře)
Metoda Form::getValues()
nevrací reálná data, ale pouze
validní, tu použít nelze. Na internetu jsem zahlédl nějaké poznámky od
@DavidGrudl, že implementuje na podněty od uživatelů Nette metodu
Form::getUntrustedValues()
, která by dodala všechny data tak jak
jsou, byť to není bezpečné.
Zkusil jsem hledat něco o této metodě v dokumentaci, ale nic nenašel.
Zkusil jsem tedy $form->getUntrustedValues()
, a obdržel
chybovou hlášku:
ArgumentCountError
Too few arguments to function Nette\Forms\Container::getUntrustedValues(), 0 passed in
C:\www\cli\project\app\Admin\Presenters\TranslationPresenter.php on line 44 and at least 1 expected
Z chybové hlášky usuzuji, že metoda Form::getValues()
existuje, ale má nějaké povinné parametry. Bohužel jsem nebyl schopen
k této metodě nic vysurfovat a tak prosím o nějaké informace od kolegů,
kteří něco vědí.
Díky
Editoval m.brecher (10. 9. 2022 17:29)
- m.brecher
- Generous Backer | 871
Ještě doplním, že fulltext hledáním v adresáři
C:\www\cli\project\vendor\nette\forms
jsem nalezl zmínku
o metodě getUntrustedValues():
'You cannot call getValues() during the validation process. Use getUntrustedValues() instead.'
Což potvrzuje můj pocit, že metoda existuje :).
- Marek Bartoš
- Nette Blogger | 1274
Stejně jako getValues(), getUntrustedValues('array')
Parametr určuje return type
- m.brecher
- Generous Backer | 871
Trochu jsem se podivil, že metoda getValues() nevyžaduje povinný parametr,
kdežto getUntrustedValues() vyžaduje, a opravdu ze zdrojového kódu Nette
vyplývá, že první parametr je
string|object|null $returnType = null,
resp.
string|object|null $returnType,
. Možná by stálo za to aby se
tento parametr u obou metod sjednotil a byl nepovinný, protože to asi ničemu
nevadí a uživatelé Nette by to asi někteří uvítali.