Vollständige Version anzeigen : Url View Helper Bug ??
nosilume
09.08.2007, 09:12
Guten Morgen !
Ich habe ein Problem mit dem Url-Helper von Zend_View. Und zwar: sobald ich meine Action über http://localhost/index/sample oder http://foo/bar aufrufe, funktioniert der Url-Helper super. Wenn ich aber eine Route zB login definiere (controller = index, action = login), werden alle Werte zu eben dieser Route (hier halt login).So rufe ich den Helper auf:
Zend_Debug::dump($this->url(array('controller' => 'index', 'action' => 'info')));Ich bin sprichwörtlich verzweifelt^^, weiß jemand weiter ?
schau mal obs so besser geht:
gib in dem array das du dem url helper übergibts, noch ein modul mit. oder hab ich das falsch verstanden?
ich hab das jetzt so verstanden:
seite: default/index/index -> urlHelper funktioniert wie gewünscht
seite: default/foo/bar -> urlHelper funktioniert wie gewünscht
login/index/login -> alle urls vom urlHelper werden zu login/:controller/:action
wenn du jetzt
$helperUrl = array();
$helperUrl['module'] = 'default';
$helperUrl['controller'] = 'index';
$helperUrl['action'] = 'info';
$this->url($helperUrl);
machst, müßte es imho funktionieren *grübel* oder ich hab dein prob nicht verstanden :)
nosilume
16.08.2007, 17:34
Ähm, ich glaube du hast das Problem leider nicht verstanden, ich versuchs nochmal:
Wenn ich die Seite über controller, Action und Module aufrufe, also so:
http://localhost/admin/foo/bar, dann funktioniert der URL Helper wie erwartet. Wenn ich aber eine Route (Zend_Controller_Router_Route) definiere:
$router->addRoute('login', new Zend_Controller_Router_Route('login', array('controller' => 'index', 'action' => 'login', 'module' => 'default')));und die Route jetzt aufrufe: http://localhost/admin/login, dann wird gibt der Url Helper IMMER diese Route zurück (login).
Sorry, dass ich mich erst jetzt melde, diese Emailbenachrichtung hat anscheinend ein paar Probleme...
ah, ok. hab das jetzt mal ausprobiert und weis was du meinst.
innerhalb einer eigenen route muß beim verwenden von urlHelper der auf eine andere Route verweist der route name angegeben werden. Beispiel:
(innerhalb der login route)
<?php echo $this->url(array('controller' => 'index', 'action' => 'info')); ?>
ergibt
/projekte/com.zend/html/login
(baseUrl ist "/projekte/com.zend/html/")
und mit route name:
<?php echo $this->url(array('controller' => 'index', 'action' => 'info'), 'default'); ?>
bekomm ich folgendes:
/projekte/com.zend/html/index/info
hab ichs jetzt begriffen was du meintest? *hoff*
nosilume
17.08.2007, 08:41
Ja, danke ! Muss ich gleich ausprobieren, ich war schon wirklich am Verzweifeln...
vBulletin® v3.6.12, Copyright ©2000-2010, Jelsoft Enterprises Ltd.