endCondition – return parent vs. control

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

Dotaz/Návrh na změnu.
Mám následující control na formuláři:

$this->addText('GPS', 'GPS:')
					->setAttribute('placeholder', '99.999999N, 99.999999E')
					->addCondition(self::FILLED)
						->addRule(self::REGEXP, 'Vyžadovaný formát formát 99.999999N, 99.999999E', "/^(\-?[0-9]{1,2}\.[0-9]{6,9}.?,\s*\-?[0-9]{1,2}\.[0-9]{6,9}.?)$/")
					->endCondition()
					->getLabelPrototype()->class('control-label', TRUE);

kde po endCondition chci ještě nastavit třídu pro Label, což nelze jelikož endCondition vrací Nette\Forms\Rules, nebylo by lepší v endCondition vracet namísto:

return $this->parent;

radši:

return $this->control;

díky čemuž by se mohlo dále pokračovat v konfiguraci controlu?
Nebo proč je dobré vracet parent?

duke
Člen | 650
+
0
-

Podmínky mohou být i do sebe zanořené, takže je někdy třeba volat endCondition() vícekrát za sebou. Např.:

$control
	->addCondition(Form::FILLED)
		->addConditionOn($anotherControl, Form::FILLED)
			->addConditionOn($yetAnotherControl, Form::FILLED)
				->toggle('someToggle')
			->endCondition()
		->endCondition()
	->elseCondition()
		->toggle('anotherToggle');

Editoval duke (10. 5. 2015 17:30)

Stranger
Člen | 4
+
0
-

duke napsal(a):

Podmínky mohou být i do sebe zanořené, takže je někdy třeba volat endCondition() vícekrát za sebou. Např.:

$control
	->addCondition(Form::FILLED)
		->addConditionOn($anotherControl, Form::FILLED)
			->addConditionOn($yetAnotherControl, Form::FILLED)
				->toggle('someToggle')
			->endCondition()
		->endCondition()
	->elseCondition()
		->toggle('anotherToggle');

ok, ale stejně bych očekával, že po ukončení všech condition se vrátím zpět na control…

Myiyk
Člen | 321
+
0
-

stačí použít

$this['GPS']->getLabelPrototype()->class('control-label', TRUE);

Jinak by endCondition muselo vracet nějakou magickou třídu, která by byla schopná posloužit jak na podmínky, tak na nastavení toho pole. A magické (umí hromadu věcí) třídy v sobě nesou vyšší riziko chyby.