• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Router Probleme - falsches mapping

samir980

New member
Hallo @ alle,

dieser Router macht mich verrückt. Ich habe jetzt ein Problem mit den Formularen und zwar so:

1- zuerst wird ein Link angeklickt um das Formular zu zeigen. Der link lautet: 'admin/customer/showAdd'
2- jetzt wird das Formular mit folgendem Code angezeigt:
Code:
<form action='admin/customer/add' .....>
3- wenn ich jetzt auf submit klicke versucht der Controller das Formular auf einen falschen action zu schicken und zwar auf: admin/customer/admin/customer/add , also er hängt einfach die neue URL an die alte und schickt es.
4- das passiert aber nur wenn in meinem aktuellen URL das gleiche Modul und der gleiche Controller steht wie die ZIEL URL. Also in meinem konkreten Fall: Modul = admin , Controller = customer

Ich habe Doku vom Router durchgelesen aber kam zu keinem Ergebnis.

Ich bitte euch um Hilfe.

Viele Grüße
Sami
 

JD_

New member
so sehe meine Links aus

PHP:
<?php echo $this->baseUrl; ?>/cms/CmsNews/add
und im Controller unter der init()-Funktion definierst du das:

PHP:
public function init()
    {
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl;
    }
 

samir980

New member
erst mal vielen Dank für die Antworte und sorry für die verspätete Danksagung :) ich hatte in der Arbeit frei gehabt.

1- Ich habe leider immer noch Probleme mit getBaseUrl(). Und zwar liefert mir diese Funktion immer NULL zurück. Die Links funktionieren nur, wenn index.php im DokumentRoot von Apache liegt.

(Für die Annahme dass getBaseUrl() funktioniert)
2- Wäre es auch möglich die baseUrl mittels die HTML-TAG <base> zu benuntzen also quasi so:
PHP:
<base href="http://<?php echo $this->escape($_SERVER['HTTP_HOST']) . $this->escape($this->baseurl); ?>/"/>
Ich meine wieso soll ich immer vor jedem Link die getBaseUrl() aufrufen. Ich könnte das nur ein mal in diese HTML-TAG aufrufen und dann wird es vor jedem Link automaitsch gesetzt.

Ich wäre für die Hilfe sehr dankbar.

LG
Sami
 

Kaiuwe

Super-Moderator
Die Basis-Url sucht sich der Frontcontroller selber und braucht daher meistens garnicht gesetzt werden. (http://framework.zend.com/manual/de/zend.controller.request.html#zend.controller.request.http.baseurl)
Im "Head"-Bereich deiner HTML-Dokumente setzt du die Adressbasis für alle Verweise: http://de.selfhtml.org/html/kopfdaten/basis.htm#adresse

Beispiel:
Code:
...
<base href="http://www.meineseite.de/">
...
<a href="index.html">
...
ergibt: "http://www.meineseite.de/index.html"

Das gilt dann auch für das Einbinden von Bildern, externen CSS- und JavaScript-Dateien, Formulare und mehr.
 

Bleistift

Moderator
Am besten ist, wenn du den url-ViewHelper nutzt. Mehr Informationen dazu findest du in der Doku oder hier im Forum (EDIT: sogar in diesem Thread!)
 

samir980

New member
ausßerdem liefert mir getBaseUrl() immer Null zurück.

Ich habe mir den wert mit Hilfe der der Funktion var_dump() zurückliefern lassen. Er liefert immer NULL, selbst wenn ich das mit
PHP:
$controller->setBaseUrl('/tandt/public');
manuell setze.:mad:
 
Oben