Jak vygenerovat absolutní odkaz do aplikace mimo komponentu

lvq
Člen | 47
+
+1
-

Mám třídu dědící od Kdyby\Events\Subscriber. V config.neon ji mám klasicky v sekci: events: subscribers.
V této třídě potřebuji vytvořit odkaz na presenter. Ale potřebuji absolutní cestu.
Když si do třídy předám Nette\Application\Application a zavolám:

$this->application->getPresenter()->link('Presenter:default', $params);

tak to vytvoří vždy relativní adresy. Zkoumal jsem, jak se generují odkazy v šablonách, ale nepřišel jsem na nic, co by mně pomohlo.
Mohl by mi někdo poradit jak na to?

David Matějka
Moderator | 6445
+
+4
-

kdyz das na zacatek // (tedy '//Presenter:default'), tak to vygeneruje absolutni odkaz. ale tady je lepsi pouzit sluzbu LinkGenerator, ta generuje link vzdy absolutni.

Matey
Člen | 142
+
+2
-

Na generovanie absolútnej url v presenteri/componente sa používajú dve lomítka //.

$this->application->getPresenter()->link('//Presenter:default', $params);

Ideálne je na to použiť Nette\Application\LinkGenerator. LinkGenerator generuje automaticky absolutne url. Článok k tomu https://phpfashion.com/…lech-a-nette

lvq
Člen | 47
+
0
-

Díky, funguje to :-)
Ten LinkGenerator je super.

rerege
Člen | 58
+
0
-

aby to uvedlo jenom jméno domény – tedy bez http:// to už bych chtěl asi od života moc, že?
příklad mého použití:

$this->link('//:Core:Article:default')