Odkazy na externý web v latte
- Aris
- Člen | 48
Zdravím, snažím sa pridať odkazy na cudzie weby v latte <a
href=„{$company->web}“>Web</a> . Tvar predávaného
parametra je www.google.sk ako
štandardná url. Adresa v prehliadači je však …/www/www.google.sk
Ako zmeniť defaultnú URL, respektíve povedať Nette že ide o externé
odkazy? Takto to vypadá tak, že hľadá presenter.
Rovnaký problém mám pri použití jednoduchého <a
href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho
čo som našiel.
Editoval Aris (28. 12. 2017 16:15)
- Berry
- Začátečník | 70
Aris napsal(a):
Zdravím, snažím sa pridať odkazy na cudzie weby v latte <a href=„{$company->web}“>Web</a> . Tvar predávaného parametra je www.google.sk ako štandardná url. Adresa v prehliadači je však …/www/www.google.sk
Ako zmeniť defaultnú URL, respektíve povedať Nette že ide o externé odkazy? Takto to vypadá tak, že hľadá presenter.
Rovnaký problém mám pri použití jednoduchého <a href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho čo som našiel.
Netuším kde je chyba, ale mě klasický <a href… normálně funguje.
- Aris
- Člen | 48
Konkrétna chyba je:
Nette\Application\BadRequestException #404
Cannot load presenter ‚Www:Google:Sk‘, class
‚App\WwwModule\GoogleModule\Presenters\SkPresenter‘ was not found.
V html je pritom normálne vygenerovaný odkaz s platnou url.
Prípadne zle nastavený router?
$router = new RouteList;
$router[] = new Route('<presenter>/<action>', 'Homepage:default');
- nightfish
- Člen | 519
Aris napsal(a):
Rovnaký problém mám pri použití jednoduchého <a href=„www.google.sk“>Google</a>, čo by malo fungovať podľa toho čo som našiel.
Ono totiž www.google.sk
je relativní URL, a tedy se vztahuje
k adrese aktuálního dokumentu. Ty chceš použít absolutní URL, tedy
https://www.google.sk/
.
- Aris
- Člen | 48
Ďakujem za rady :)
Ako písal @ali . Doplnil som k zadaným url http:// a fungujú ako
majú :) S https nebralo všetky odkazy.
//
Nech neotváram novú tému, potreboval by som ešte radu ohľadom routovania
projektu.
Vychádzal som z klasického usporiadania projektu, kedy šiel projekt bez
problémov, i spojenie s DB.
Po krokoch popísaných nižšie, ktoré som predpokladal, že vedú k riadnemu
preroutovaniu projektu som sa dostal k chybe:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an
error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near '' at line 1 , pričom som
metóde presenteru predával v latte šablóne parameter, podľa ktorého sa
vyberalo z DB.
- Pridal som do zložky App zložky AdminModule a PublicModule, v každom priečinky Templates, Presenters a Control
- Prepísal som RouterFactory
$router = new RouteList;
//public module
$public = new RouteList('Public');
$public = new Route('<presenter>/<action>[/<id>]', 'Public:Homepage:default');
$public = new Route('<presenter>/<action>', 'Public:Discounts:default');
$public = new Route('<presenter>/<action>', 'Public:Discounts:detail');
$router[] = $public;
....
//admin module
$admin = new RouteList('Admin');
$admin = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $admin;
return $router;
3. Zmenil som namespace v presenteroch i komponentoch modulu PublicModule
na App\PublicModule\Presenters
4. Skontroloval som config.neon, mapping je nastavený *:
App*Module\Presenters*Presenter , čiže myslím dobre
5. Nakoľko šablónach nevolám už akciu napr. Discounts:detail,
$discount->id, $discount->owner_id (predávané parametre), zmenil som
všetky akcie na typ Public:Discounts:detail
Napriek všetkým možným úvahám a zmenám čo som vyskúšal,
v debuggeri skončím na akcii Public:Discounts:detail, ktorej sú predané
parametre s hodnotou null, čiže je chybný následne i select z databázy.
Po dlhšom skúšaní sa mi vidí, že model nespolupracuje so zbytkom
aplikácie, avšak sú promptne definované v configu, ich lokalita sa
nemenila.
Treba zmeniť namespace i pri modeloch?
Ďakujem za prípadné tipy :)
Editoval Aris (30. 12. 2017 22:41)