lingGenerator + vlastni routerFactory

před 9 měsíci

balicekt
Člen | 36
+
0
-

Zdravim, potrebuju do emailu generovat odkazy a mam vlastni routerFactory kde pracuju s databazi.
Vse funguje OK jen v emailech se nepouziva mou vytvoreny routerFacotry ale jen nejaky zaklad z nette.

Zkousel jsem do linkGenerator v config.neon dopsat viz nize:

<?php
services:
    ...

    - App\RouterFactory
    router: @App\RouterFactory::createRouter

    application.linkGenerator:
        arguments:
            router: @App\RouterFactory::createRouter

Ale bohuzel dostanu chybu
Undefined property: App\RouterFactory::$createRouter
?>

Nevite prosim jak s timto hnout? MOC DEKUJI

Editoval balicekt (18. 2. 17:08)

před 9 měsíci

David Matějka
Moderator | 5681
+
0
-

v emailech se nepouziva mou vytvoreny routerFacotry ale jen nejaky zaklad z nette.

z čeho usuzuješ? hlasi to nejakou chybu?

před 9 měsíci

balicekt
Člen | 36
+
0
-

Vychazim z toho ze pokud toto zavolam v presenteru:

<?php
{link 'Shop:Product:', product => $product}

dostanu to co chci:
mojedomena.cz/moje-hezka-url-kterou-nacitam-z-db

ale kdyz to same zavolam v sablone pro email dostanu:
mojedomena.cz/product/?product=xyz

?>

Moje router factory je zavisla na dalsim servisu takze jsem do config.neon pridal

<?php

    - App\RouterFactory
    router: @App\RouterFactory::createRouter

    application.linkGenerator:
        arguments:
            router: @App\RouterFactory(@App\Model\Services\UrlService)::createRouter
?>

to uz nevyhazuje zadnou chybu ale moje routerFactory se stejne nevyuzije a vraci to zakladni url jak jsem psal

Editoval balicekt (18. 2. 20:24)

před 9 měsíci

CZechBoY
Člen | 3168
+
0
-

Proč vlastně nenecháš doplnění routeru do linkgeneratoru na autowiringu?

před 9 měsíci

balicekt
Člen | 36
+
0
-

Puvodne jsem to tak mel v config.neon jsem nic s linkGneratorem nedaval jenomze linkGenerator pri generovani nefungoval tak jak mel tedy nepouzival muj vytvoreny RouterFactory jako kdyz se generuji linky vsude jinde v presenterech. Proto jsem zkusil linkGeneratoru podstrcit do argumentu muj router v config.neon. Ale ani to bohuzel nepomohlo takze uz opravdu netusim co s tim.

Budu moc rad za kazdou radu. Diky moc

Editoval balicekt (18. 2. 23:37)

před 9 měsíci

David Matějka
Moderator | 5681
+
0
-

pouzivas pri vytvareni linku pres link generator cely nazev presenteru vcetne modulu?

před 9 měsíci

balicekt
Člen | 36
+
0
-

Ano pouzivam cely nazev MODUL:PRESENTER:AKCE

před 9 měsíci

David Grudl
Nette Core | 6779
+
0
-

V arguments by asi místo router: @App\RouterFactory::createRouter mělo router: @router.

před 9 měsíci

balicekt
Člen | 36
+
0
-

Zmeneno na router: @router ale bohuzel vysledek stale stejny :( je stejny jako kdyz v config.neon tuto cast uplne zakomentuji

<?php
services:
    application.linkGenerator:
        arguments:
            router: @router

?>

Editoval balicekt (24. 2. 12:16)

před 9 měsíci

balicekt
Člen | 36
+
0
-

Dnes jsem pul dne debugoval a googlil a myslim ze by mohl byt problem v tom, ze router, ktery se pouziva v linkGeneratoru nema nastaven parametr module viz printscreen je to mozne, ze bude problem prave v tom? A pokud ano jakym zpusobem bych ho mel nastavit?

Diky za jakoukoliv radu.

obrazek zde: http://temp.tommylabs.com/x.png

Editoval balicekt (25. 2. 19:11)

před 9 měsíci

David Matějka
Moderator | 5681
+
0
-

ukaz definici routeru
edit:
a jeste ukaz, jak link vytvaris v sablone

před 9 měsíci

balicekt
Člen | 36
+
0
-

Tak po dalsim debugovani problem nalezen. Prvni problem byl ze se automaticky nepredaval parametr „locale“ a tim padem nedochazelo k prekladu a druhy hlavni problem byl ten, ze v routeru, ktery jsem vytvoril a url se nacitala z DB jsem si kontroloval ve funkci constructUrl jestli predany parametr je mou pozadovana entita, ale co jsem netusil ze kdyby doctrine si nejak entity cachuje a tim padem nebyla vysledna trida po zavolani get_class() „App\Model\Entities\XYZ“ ale misto toho byla „Kdyby\GeneratedProxy\__CG__\App\Model\Entities\XYZ“. Takze to byl cely problem. Moc dekuji za vsechny rady!!!!