Condition / Rule / Další věci – posloupnost

Kcko
Člen | 468
+
0
-

Ahoj,

potřebuji cosi nastavovat radio listu

1)

<?php
		$form->addRadioList('agreePpf', '', $agreePpf)
			 ->getSeparatorPrototype()->setName(NULL)
			 ->addConditionOn($form['gdprType'], $form::EQUAL, 2)
			 ->addRule($form::FILLED);
?>

Chyba: Object of class Nette\Forms\Controls\RadioList could not be converted to string

2)

<?php
		$form->addRadioList('agreePpf', '', $agreePpf)
			 ->addConditionOn($form['gdprType'], $form::EQUAL, 2)
			 ->addRule($form::FILLED)
			 ->getSeparatorPrototype()->setName(NULL);
?>

Chyba: Call to undefined method Nette\Forms\Rules::getSeparatorPrototype()

  1. funkční řešení
<?php
		$form->addRadioList('agreePpf', '', $agreePpf)
			 ->addConditionOn($form['gdprType'], $form::EQUAL, 2)
			 ->addRule($form::FILLED);

		$form['agreePpf']->getSeparatorPrototype()->setName(NULL);
?>

Moje otázka tedy asi zní, lze nějak řetezit v onom objektu a ukončovat vrstvy (rule a další metody) tak bych mohl pracovat s tím čím potřebuji a nemusel jsem to dělat tímto způsobem? Koukal jsem do kódu a nic moc jsem nenašel čím to udělat.

Editoval Kcko (13. 9. 2018 17:10)

Tyraxor
Člen | 31
+
+1
-

Ahoj,
tohle zřetězit nepůjde, protože některé funkce vrací jiné objekty, ještě to lze řešit takto, ale není to o moc lepší

$agreeRadio = $form->addRadioList('agreePpf', '', $agreePpf);
$agreeRadio->getSeparatorPrototype()->setName(NULL);
$agreeRadio->addCondition($form['gdprType'], $form::EQUAL, 2)
             ->addRule($form::FILLED);

Editoval Tyraxor (13. 9. 2018 17:20)

Kcko
Člen | 468
+
0
-

Tyraxor napsal(a):

Ahoj,
tohle zřetězit nepůjde, protože některé funkce vrací jiné objekty, ještě to lze řešit takto, ale není to o moc lepší

$agreeRadio = $form->addRadioList('agreePpf', '', $agreePpf);
$agreeRadio->getSeparatorPrototype()->setName(NULL);
$agreeRadio->addCondition($form['gdprType'], $form::EQUAL, 2)
             ->addRule($form::FILLED);

Ahoj, díky za info. To je to samé v bleděmodrém, mě šlo jen o to, jestli to nějak jde řetězit :-)

Felix
Nette Core | 1245
+
+1
-

Kcko napsal(a):

Ahoj, díky za info. To je to samé v bleděmodrém, mě šlo jen o to, jestli to nějak jde řetězit :-)

A proc tak nutne stojis o to, aby to slo zretezit? Aby to vypadalo lepe nebo i kvuli necemu jinemu?

Kcko
Člen | 468
+
0
-

Felix napsal(a):

Kcko napsal(a):

Ahoj, díky za info. To je to samé v bleděmodrém, mě šlo jen o to, jestli to nějak jde řetězit :-)

A proc tak nutne stojis o to, aby to slo zretezit? Aby to vypadalo lepe nebo i kvuli necemu jinemu?

To taky, vypadá to lépe, nepoužíval bych další zbytečnou proměnnou fori sahání na ten prvek v rámmci $forms.
Stačila by jedna metoda vracející to co vrací $forms[„prvek“]. Nebo proč je to tak nechtěné?

Felix
Nette Core | 1245
+
0
-

Kcko napsal(a):

To taky, vypadá to lépe, nepoužíval bych další zbytečnou proměnnou fori sahání na ten prvek v rámmci $forms.
Stačila by jedna metoda vracející to co vrací $forms[„prvek“]. Nebo proč je to tak nechtěné?

Jen se ptam, jsou legitimni duvody, ze to nejde. Tak netreba to rvat pres koleno. Jedna promenna navic nicemu neva. :-)

Kcko
Člen | 468
+
0
-

Felix napsal(a):

Kcko napsal(a):

To taky, vypadá to lépe, nepoužíval bych další zbytečnou proměnnou fori sahání na ten prvek v rámmci $forms.
Stačila by jedna metoda vracející to co vrací $forms[„prvek“]. Nebo proč je to tak nechtěné?

Jen se ptam, jsou legitimni duvody, ze to nejde. Tak netreba to rvat pres koleno. Jedna promenna navic nicemu neva. :-)

Ok, však jo, jen jsem se chtěl ujistit, že třeba blbě nehledám v dokumentaci / zdrojáků, občas se prostě chci zeptat, at nedělám něco blbě :)

David Matějka
Moderator | 6445
+
0
-

metoda getControl na Rules by smysl mozna davala a bylo by to snadne (zkus poslat PR), ale z getSeparatorPrototype, ktere vraci Nette\Utils\Html je to neproveditelne bez podedeni te tridy

Kcko
Člen | 468
+
0
-

David Matějka napsal(a):

metoda getControl na Rules by smysl mozna davala a bylo by to snadne (zkus poslat PR), ale z getSeparatorPrototype, ktere vraci Nette\Utils\Html je to neproveditelne bez podedeni te tridy

Chápu, že je to nějaký princip Single Responsibility. Jen říkám, že by se mi to líbilo :-)