špatná invalidace snippetů při handle
- Jack06
- Člen | 168
Zdravím, chtěl bych pomoci s následujícím:
public function renderDefault($order = NULL) {
$paginator = $this['paginator']->getPaginator();
$paginator->itemCount = $order != 'rand' ? count($this->projectService->get(1)) : 6;
$paginator->itemsPerPage = 6;
$this->template->projects = $this->projectService->getOrder($paginator, 1, $order);
if ($this->isAjax())
$this->invalidateControl('projects');
$this->template->tags = $this->tagsService->get();
}
v metodě renderDefault mám toto:
a pak mám handle na změnu obsahu:
public function handleTag( $tag ) {
$paginator = $this['paginator']->getPaginator();
$paginator->itemCount = count($this->projectService->get(1)->where('project_has_tag:tag_id', $tag));
$paginator->itemsPerPage = 6;
$this->template->projects = $this->projectService->getOrder($paginator, 1)->where('project_has_tag:tag_id', $tag);
$this->invalidateControl('projects');
}
Bohužel se mi stále v invalidaci předávají data z renderDefault namísto z handlu.
//moje otázka tedy směřuje na to, jak to udělat, aby se buď neprovedl potom renderDefault podle životního cyklu, nebo aby mi nepřepsal snippety.
Editoval Jack06 (13. 10. 2012 14:37)
- Ot@s
- Backer | 476
Jack06 napsal(a):
Nemohu to přesměrovat. Pokud bych tam dal redirect, tak mi je k ničemu, že tam mám snippety. Mám to ajaxově načítané.
Ano, „pochopils“ to správně – ten kód je třeba přepsat tak, aby reflektoval životní cyklus frameworku. Pak budeš mít aplikaci, která ti bude fungovat „tak i tak“ bez nějakých speciálních kliček. Problém je v tom, že s „nepřehledným“ kódem ti velice nikdo moc neporadí (alespoň tak to vnímám já).