Vlastny render radioListu error

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
TheRiseAgainst
Člen | 21
+
0
-

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.

CZechBoY
Člen | 3608
+
0
-

Ukaz obsah $options.

TheRiseAgainst
Člen | 21
+
0
-

@CZechBoY

<?php
$options = array(
   	'cash' => 'Cash',
	'bank' => 'Bank',
	'both' => 'Both'
);
?>

Editoval TheRiseAgainst (28. 4. 2018 10:41)

Šaman
Člen | 2668
+
0
-

Ukaž radši celou komponentu. Případně bez ostatních inputů, pokud by jich bylo moc.

TheRiseAgainst
Člen | 21
+
0
-

@Š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 | 516
+
0
-

Skúšal si, či sa ti vykreslia tie inputy pomocou

{input transfer}

?

MajklNajt
Člen | 516
+
0
-

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
+
0
-

@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 | 516
+
0
-

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
+
0
-

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
+
0
-

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 | 516
+
0
-

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

MajklNajt
Člen | 516
+
0
-

…pre kompletnosť porovnanie:

verzia 2.0
verzia 2.1

TheRiseAgainst
Člen | 21
+
0
-

@Š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 | 516
+
0
-

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:

https://doc.nette.org/…tions/to-2-1

Šaman
Člen | 2668
+
0
-

Aha, svůj poslední koment jsem poslal dřív, než jsi poslal ty verze. Jop, 2.0 je už archaismus. Když ho používáš, tak pamatuj, že mnoho návodů, které najdeš tady na fóru, nemusí být pro tu verzi funkční.