Odkaz na jiný presenter v komponentě
- bluray
- Člen | 178
Dobrý den, mám komponentu EditProfileControl. Tuto komponenetu vytvářím v AccountPresenter. v její šabloně pak mám odkaz na změnu hesla:
<a n:href="Account:changePassword">Změnit heslo</a>
Odkazuje na presenter Account. při spuštění té komponenty je vyhozena
výjimka InvalidArgumentException: Component with name ‚Account‘ does not
exist.
Account není žádná komponenta, ale presenter.
Account presenter vypadá takto:
class AccountPresenter extends BasePresenter{
public function startup() {
parent::startup();
}
public function renderChangePassword(){
//šablona pro změnu hesla
}
public function renderProfile(){
$this->title = "Editovat profil";
$this->subtitle = $this->user->name;
}
protected function createComponentEditProfile(){
$form = new \App\Control\EditProfileControl($this->user);
$form->UserService = $this->userManager;
return $form;
}
}
Potřebuju se z komponenty odkazovat na metodu v presenteru ve kterém tu
komponentu vytvářím. jak to udělat?
Díky za radu.
- Michal Vyšinský
- Člen | 608
Z komponenty musíš odkaz vytvořit přes makro {plink}:
<a href="{plink Account:changePassword}">Změnit heslo</a>
Komponenty vytváří v šablonách odkazy (při použití {link} nebo n:href) na vlastní signály.
- Pavel Macháň
- Člen | 282
bluray napsal(a):
Aha takže když chci odkazovat na presenter, tak plink?
a když použiji link, tak to vede pouze na signál? a metodu signálu vytvářím kde? ve tříde komponenty nebo v presenteru kde mám metodu createComponent?
V komponente je {link ..} nebo n:href pro signál té komponenty. Pokud potřebuješ vytvořit link mířící na presenter tak {plink …}