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

- Senfix
 - Člen | 8
 
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.