Vlastny render radioListu error

- TheRiseAgainst
 - Člen | 21
 
Ahojte, snazim sa renderovat radioList, no stale mi to hadze error: Component with name ‚transfer:key‘ does not exist.
<?php
{foreach $form['transfer']->items as $key => $label}
	<div class="radio">
		{input transfer:$key}
		{label transfer:$key /}
	</div>
{/foreach}
?>
pricom je to zaregistrovane:
<?php
$form->addRadioList('transfer', 'Transfer:', $options)
?>
Tu istu chybu hadze aj ked to chcem vypisat takto:
{input transfer:$key}
Viete mi poradit kde je prosim chyba? Diky.

- TheRiseAgainst
 - Člen | 21
 
@CZechBoY
<?php
$options = array(
   	'cash' => 'Cash',
	'bank' => 'Bank',
	'both' => 'Both'
);
?>
					Editoval TheRiseAgainst (28. 4. 2018 10:41)

- TheRiseAgainst
 - Člen | 21
 
@Šaman Tu je ta cast co robi problem, okrem toho mam v kode este zopar podobnych selectov a tiez aj toho kopu obycajnych inputov ktore su normalne zaregistrovane a funguju.
<?php
protected function createComponentContract()
		{
			$form = new UI\Form;
			$options = array(
		    	'cash' => 'Cash',
		    	'bank' => 'Bank transfer',
				'both' => 'Both cash and transfer'
			);
			$form->addRadioList('transfer', 'Transfer:', $options)
				->setDefaultValue('cash');
			$form->onSuccess[] = $this->contractSubmitted;
			return $form;
		}
?>
					Editoval TheRiseAgainst (28. 4. 2018 13:49)

- MajklNajt
 - Člen | 518
 
ešte ma napadlo, či nemáš ten RadioList náhodou attachnutý do kontajneru, potom by si mal iterovať cez
{foreach $form['nazovkontajneru-transfer']->items as $key => $label}
    <div class="radio">
        {input nazovkontajneru-transfer:$key}
        {label nazovkontajneru-transfer:$key /}
    </div>
{/foreach}
				
- TheRiseAgainst
 - Člen | 21
 
@MajklNajt Ano cez {input transfer} to funguje takto to
mam teraz, lenze sa renderuju hned za sebou.
V kontajneri by to nemalo byt, hore je v podstate cely kod, okrem toho su tam
len dalsie inputy v tom komponente. Ako by sa inac potom ten kontajner volal ak
by bol?
Skusal som aj nazov komponentu ale nefunguje to. Cokolvek je v tom v tom foreach ako pole vyhodi chybu: Component with name ‚cokolvek‘ does not exist.
Editoval TheRiseAgainst (28. 4. 2018 20:39)

- MajklNajt
 - Člen | 518
 
Vyskúšal som ten tvoj spôsob, a mne to frčí… máš Nette 2.4? Skús prípadne ešte podľa príkladu z dokumentácie cez n:name
{foreach $form['transfer']->items as $key => $label}
    <div class="radio">
		<label n:name="transfer:$key"><input n:name="transfer:$key"> {$label}</label>
    </div>
{/foreach}
				
- TheRiseAgainst
 - Člen | 21
 
Nemam 2.4, mam 2.0 nieco. Ani tento priklad nefunguje. Je mozne potom ze to bude verziou, ale ved je to len jednoduchy foreach tak preco to nefunguje? A co som googlil ten problem tak sa riesil tento partial rendering v nejakej teme pred 6 rokmi cize som myslel ze to podporuje. Fakt neviem.

- Šaman
 - Člen | 2668
 
V těch ukázkách chybu nevidím. Asi by bylo nejlepší ji zkusit izolovat (nový projekt s jediným formulářem s tím radioListem) a pokud se bude projevovat stále (imho ne), tak to nasdílet třeba na GitHubu.
Pro jistotu se ještě zeptám – pokud tenhle input zakomentuješ,
formulář funguje? A zkoušel sis dumpnout
$form['transfer']->items, $key a
$label?

- MajklNajt
 - Člen | 518
 
TheRiseAgainst napsal(a):
Nemam 2.4, mam 2.0 nieco. Ani tento priklad nefunguje. Je mozne potom ze to bude verziou, ale ved je to len jednoduchy foreach tak preco to nefunguje? A co som googlil ten problem tak sa riesil tento partial rendering v nejakej teme pred 6 rokmi cize som myslel ze to podporuje. Fakt neviem.
čo tak pozerám, partial render prišiel až vo verzií 2.1, čiže presne tu bude problém

- TheRiseAgainst
 - Člen | 21
 
@Šaman Ked ho zakomentujem tak formular funguje. Ked dam dump items tak zobrazi spravne array s 3 moznostami. Cize toto je ok.
@MajklNajt Ach jaj, moja chyba potom, tak to musim vyriesit inak, je to stary projekt a ja som to nerobil takze nechcem do toho babrat a upgratovat to na 2.4 ked tam asi bude treba vela veci opravovat v kode.
Edit: Hej mas pravdu, sry ze som otravoval s tymto.
Editoval TheRiseAgainst (28. 4. 2018 22:08)

- MajklNajt
 - Člen | 518
 
To nie je otravovanie, preto sem chodíme, aby sme si pomáhali :)
Stačilo by ti migrovať na 2.1. Neviem, do akej miery je ten partial rendering pre teba dôležitý, ale tu si pozri veci, ktoré sú nekompatibilné s 2.0, a teoreticky stačí fixnúť iba to: