ukládání dat z formuláře do tabulky s cizími klíči

adferg
Člen | 31
+
0
-

Ahoj, pokouším se uložit data z formuláře do tabulky, která má hned několik polí s cizími klíči. Mysql bazíruje na tom, aby při vkládání záznamu existovala nějaká hodnota do polí s cizími klíči.

Zkusil jsem vloži pole

"addHidden('cizi_klic');":null

a změnit jeho hodnotu na 1 přes addFilter

->addFilter(function ($value)
{
	return '1';
});

což končí chybou v logu:

Nette\MemberAccessException: Call to undefined method Nette\Forms\Controls\HiddenField::addFilter().

addFilter mi normálně funguje u pole addText etc. Řekl bych, že to je poměrně obvyklá operace, ale nemůžu najít návod, jak se tabulka s cizími klíči u kterých není v momentě ukládání do databáze známá hodnota (tu tam potřebuju uložit až později) řeší.

Díky za rady, tipy

David Matějka
Moderator | 6445
+
+1
-

Řekl bych, že to je poměrně obvyklá operace, ale nemůžu najít návod, jak se tabulka s cizími klíči u kterých není v momentě ukládání do databáze známá hodnota (tu tam potřebuju uložit až později) řeší.

nullable sloupec v databazi

adferg
Člen | 31
+
0
-

Díky Davide, to pomohlo. Jen se zeptám, abych tomu rozuměl správně. U toho addHidden prostě addFilter použít nedává smysl nebo mám jen něco špatně nastaveno? Ptám se proto, že bych chtěl uložit do databáze identitu uživatele který formulář odesílá (něco jako user_id) ale bez toho, aby k tomu existovalo viditelné pole.

Editoval adferg (16. 11. 2020 11:10)