Zanořený multiplier v dalším multiplieru
- Dvory59
- Člen | 40
Ahoj. Mám problém se zanořeným multiplierem v multiplieru.
V presenteru mám
public function createComponentExpeditionForm()
{
$form = new Form();......
/** @var \WebChemistry\Forms\Controls\Multiplier $multiplier */
$multiplier = $form->addMultiplier('multiplier', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {
$container->addText('value1', 'Value 1');
$multiplier_second = $form->addMultiplier('multiplier2', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {
$container->addText('value2 ', 'Value 2');
}, 1);
$multiplier_second->addCreateButton('Přidat položku 1');
}, 1);
$multiplier->addCreateButton('Přidat položku 2');
.....
return $form;
}
a v šabloně pak
<div class="sources-online" n:multiplier="multiplier">
{input value1}
<div class="sources-online" n:multiplier="multiplier2">
{input value2}
</div>
{btnCreate multiplier2}
</div>
{btnCreate multiplier}
Když mám pouze 1 multiplier, je to v pohodě a formulář funguje jak
má.
Ale při přidání druhého multiplieru se začne vypisovat hláška, že
Component with name ‚multiplier2‘ does not exist.
Poradíte prosím, jak tento problém vyřešit? Nebo jakým způsobem vyřešit zanořený multiplier?
- Martk
- Člen | 661
Teď asi takhle:
<div class="sources-online" n:multiplier="multiplier">
{var $parent = $formContainer}
{input value1}
<div class="sources-online" n:multiplier="multiplier2">
{input value2}
</div>
{btnCreate $parent[multiplier2]}
</div>
{btnCreate multiplier}
Na ty makra se musím ještě podívat a napsat to lépe.
- Martk
- Člen | 661
@Dvory59 Ten tvůj latte kód funguje jak má, jen máš chybu v php kódu
$multiplier_second = $form->addMultiplier('multiplier2', function (Nette\Forms\Container $container, Nette\Forms\Form $form) {
$container->addText('value2 ', 'Value 2');
}, 1);
Z $form na $container, protože to přidáváš k tomu containeru:
$multiplier_second = $container->addMultiplier(...