Nechápu smysl přístupu k Metodě Link
- snazimse
- Člen | 43
Zdravím všechny,
prosím, byl bych rád kdyby mi někdo zkušený helpnul..
Mám presenter ten má svůj model, původně jsem to chtěl zprovoznit
přímo v Modelu, ale to mi přijde nesmyslně komplikované, tak si to radši
předám.
A když si zavolám v presenteru
$this->getPresenter()->link();
Tak dostanu chybějící parametr pro foreach metody, očekával bych:
aspoň jednoduše toto na akci default a ani tak nic…
$this->getPresenter()->link('default'); //chyba
$this->getPresenter()->link(':default'); //chyba
Nechápu proč nemůže fungovat automaticky globální mapování
presenterů…
Abych rovnou mohl udělat, bez zbytečného mapování servis v configu a
jiných nadbytečností…
$this->link('JakykolivPresenter:default');
A když ne tak, ať aspoň funguje z aktuálního presenteru, to mi
stačí, ale
z API jsem si našel metodu a zápis mi nic neříká…
[//] [[[module:]presenter:]action |
Jaký module? Co to je?
Rád bych aspoň měl něco takového na akci default, parameter je vadný, čili asi špatný zápis:
$this->getPresenter()->link('default');
Představoval jsem si, že to funguje takhle: https://doc.nette.org/…n/presenters#…
Děkuju velmi předem všem ochotným za vstřícnou pomoc :) !
Editoval snazimse (9. 7. 2017 14:53)
- David Matějka
- Moderator | 6445
ahoj, to ->link('default')
by fungovat melo. jakou chybu
to hlasi?
Jaký module? Co to je?
moduly slouzeji k rozdeleni presenteru do urcitych skupin, treba tady mas malou ukazku
a mimochodem, kdyz jsi v presenteru, tak neni potreba volat
$this->getPresenter()->link(...)
,
staci $this->link(..)
- snazimse
- Člen | 43
David Matějka napsal(a):
ahoj, to
->link('default')
by fungovat melo. jakou chybu to hlasi?Jaký module? Co to je?
moduly slouzeji k rozdeleni presenteru do urcitych skupin, treba tady mas malou ukazku
a mimochodem, kdyz jsi v presenteru, tak neni potreba volat
$this->getPresenter()->link(...)
, staci$this->link(..)
Děkuji moc za reakci :)
$this->link("default");
Hlásí to invalidní vstup pro foreach viz:
http://prntscr.com/fth7hd
- snazimse
- Člen | 43
CZechBoY napsal(a):
dokumentaci si cetl?
https://doc.nette.org/…n/presenters#…
Ano, fakt je, že všechno ještě nechápu :)
David Matějka napsal(a):
kde to volas?
(pokud napriklad v konstruktoru, tak to je moc brzo..)
No předávám to v konstrukturu do daného modulu čili App/Module/Something, takže až afterRender? Asi to budu muset udělat přes to mapování v configu do toho Modelu, prostě potřebuju generovat linky v metodě modulu a pak to zase vrátit pro vykreslení do presenteru :)
Ale ty services moc nechápu, to mám přidat jen cestu k Modulu do config.neon, nějak takto?
application:
mapping:
*: App\Model\*ModelPresenteru
Aby mi v modulu fungovala metoda Link ?
Editoval snazimse (9. 7. 2017 15:41)
- David Matějka
- Moderator | 6445
pletes si tady dve veci
- model – vrstva aplikace, kde provadis business logiku aplikace, komunikujes s databazi atd. v nette mas tuto vrstvu slozenou z trid, ktere jsou obvykle registrovane jako sluzby (services) v configu
- modul – skupina presenteru
v modelu bys nemel linky generovat. pokud je potrebujes, tak jedine pres sluzbu link factory … ale je lepsi to generovat az v presenteru
- snazimse
- Člen | 43
David Matějka napsal(a):
pletes si tady dve veci
- model – vrstva aplikace, kde provadis business logiku aplikace, komunikujes s databazi atd. v nette mas tuto vrstvu slozenou z trid, ktere jsou obvykle registrovane jako sluzby (services) v configu
- modul – skupina presenteru
v modelu bys nemel linky generovat. pokud je potrebujes, tak jedine pres sluzbu link factory … ale je lepsi to generovat az v presenteru
Dobře, tak to jsem asi špatně pochopil, aktuálně si dělám metodu na
generování administračního menu, kde využívám metodu Link.
Takže by bylo správné tu metodu mít v presenteru namísto v modelu a
předávat bych nemusel nic ? Tam tedy pouze věci z DB získání dat, nebo
něco jiného ještě ? Díky moc za nasměrování !
- David Matějka
- Moderator | 6445
V modelu muzes provadet i ruzne vypocty, muzes vhodne pripravit strukturu dat pro presenter. Ale samotne vytvareni linku je – vzhledem k architekture nette – lepsi provadet az v presenteru, respektive v sablone, kde to menu budes vypisovat.
Takze presenteru se zepta modelu na polozky menu. Model vrati nejakou vhodnou strukturu. presenter ty data posle do sablony a tam je pres foreach vypises.
Jako dalsi krok muzes to menu zabalit do komponenty – to je nejaka cast stranky zabalena do samotne tridy. takze v presenteru pouze vytvoris pres tovarnu tu komponentu a komponenta uz bude mit na starost komunikaci s modelem, vypis dat ve svoji sablone atd.
- snazimse
- Člen | 43
David Matějka napsal(a):
V modelu muzes provadet i ruzne vypocty, muzes vhodne pripravit strukturu dat pro presenter. Ale samotne vytvareni linku je – vzhledem k architekture nette – lepsi provadet az v presenteru, respektive v sablone, kde to menu budes vypisovat.
Takze presenteru se zepta modelu na polozky menu. Model vrati nejakou vhodnou strukturu. presenter ty data posle do sablony a tam je pres foreach vypises.
Jako dalsi krok muzes to menu zabalit do komponenty – to je nejaka cast stranky zabalena do samotne tridy. takze v presenteru pouze vytvoris pres tovarnu tu komponentu a komponenta uz bude mit na starost komunikaci s modelem, vypis dat ve svoji sablone atd.
Dobře, ještě jednou díky moc za pomoc! To mi stačí :)