validace, transformace, a práce s daty sloupců

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

Ahoj,
poměrně často při programování potřebuji data získané z databáze nějakým způsobem sloučit transformovat atd. (například při výpisu url adresy produktu potřebuju doplnit url skupiny). MOmentálně to řeším dost těžkopádně takto:
v Active row do funkce &__get na začátku doplním

try{
	return \Nette\ObjectMixin::get($this->getTable(), $key);
}catch(\Exception $e){

}

v modelu nadefinuji getter

public function getUrl(){
	$skupina = '';
	$pUrl = '';
	if($this->valid()){
	    	$pUrl = $this->current()->url;
		$skupina = \Nette\Environment::getContext()->createSkupina()
		    ->get($this->current()->id_skupiny);
	}
	$nadUrl = '';
	if($skupina){
	    $nadUrl = $skupina->url.'/';
	}
	return $nadUrl.$pUrl;
    }

potom už v latte šabloně stačí zavolat

{foreach $produkty as $produkt}
	<li><a href="{$produkt->url}">{$produkt->nazev}</a></li>
{/foreach}

Chápu že tenhle konkrétní případ by se měl vyřešit relací ale je to pouze příklad jsou problému podobného typu které vůbec s relacemi nesouvisí (validace dat z databáze, výpis krátkého popisu nebo dlouhého pokud neexistuje krátký, atd…)

Problém je v tom že se mi tenhle způsob zdá trochu těžkopádný a navíc nechci moc zasahovat do kodu Nette abych při každé aktualizace nemusel tyhle úpravy dělat stále dokola a navíc přístup k datům v gettru se mi zdá poněkud složitý takže se ptám jestli neexituje jednodušší řešení mého problému.

hrach
Člen | 1834
+
0
-

Aktualne ani moc ne. Po mergi tohoto by ti mělo pomoct toto