Různé hodnoty parametrů u souvisejících handle a render funkcí
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Milanov
- Člen | 51
Zdravím. Setkal jsem se s problémem, že se mi nepřekresluje invalidovaná komponenta. Zjistil jsem, že hodnota parametru ID ve zpracování signálu je správná, ale když se dostane na render fázi, změní se z hodnoty ID pro komponentu na hodnotu ID pro presenter. Generovaný odkaz je: …?diskuze-id=34&id=26&action=sbor&do=diskuze-odemknout&presenter=Sbory Nevíte někdo, čím to může být? Verze nette 0.9.6. Děkuji mnohokrát za rady.
<?php
class BasePresenter extends Presenter
{
protected function startup()
{
$diskuze = new DiskuzeControl($this, 'diskuze');
parent::startup();
}
}
class DiskuzeControl extends BaseControl // registruji zde helpery pro šablonu
{
public function __construct(IComponentContainer $parent, $name)
{
parent::__construct($parent, $name);
}
public function handleZamknout($id)
{
Debug::dump($id); // vrátí hodnotu ID pro komponentu
$this->render = 'zamknout';
$this->model->zamknout($id);
$this->invalidateSnippet('zamykani'.$id); // snippet má id "snippet-diskuze-zamykani34"
}
public function render($id)
{
Debug::dump($id); // vrátí hodnotu ID pro presenter
if($this->render == 'zamykani') $this->renderZamykani($id);
else $this->renderDiskuze($id);
}
public function renderZamykani($id)
{
...
}
}
?>