Frage

Ich habe 2 benutzerdefinierte Routen definiert. Eins für threads/:id/:name und der andere für threads/tags/:tagName Der zweite Konflikt mit dem ersten, denn wenn ich beide aktiviere, bricht die ersten Pausen und Leckereien :id buchstäblich als Handlung, nicht befolgen \d+ Anforderung (ich habe auch versucht, reine Regex -Routen zu verwenden, siehe unten).

Aktion "1" existiert nicht und wurde nicht in __call () gefangen ()

Ich habe versucht, die Reihenfolge der Strecken neu zu arrangieren, aber wenn ich das tue, dann die threads/tags/:tagName erfasst den Tagnamen nicht richtig.

Ich habe auch versucht, Standardrouten zu deaktivieren, aber die Routen funktionieren danach immer noch nicht richtig.

Hier ist meine Route Init -Funktion:

protected function _initRoutes() {
$fc = Zend_Controller_Front::getInstance();
$router = $fc->getRouter();



$router->addRoute(
    'threads',
    new Zend_Controller_Router_Route('threads/:id/:name',
    array(
        'controller' => 'threads',
        'action'     => 'thread',
    ),
    array(
        'id' => '\d+'
    )
    )
);


$router->addRoute(
    'threads',
    new Zend_Controller_Router_Route('threads/tags/:tagName',
    array(
        'controller' => 'threads',
        'action'     => 'tags',
    ),
    array(
        'tagName' => '[a-zA-Z]+'
    )
    )
);


}

Ich habe auch versucht, eine reine Regex -Route zu verwenden, war aber erfolglos, höchstwahrscheinlich, weil ich es falsch gemacht habe:

$router->addRoute(

    'threads',

    new Zend_Controller_Router_Route_Regex(
    'threads/(\d+)/([a-zA-Z]+)',
    array(
        'controller' => 'threads',
        'action'     => 'thread',
    ),
    array(
        1 => 'tagName',
        2 => 'name'
    )
    )
);
War es hilfreich?

Lösung

Gelöst.

Ah, albern ich. Das erste Argument für Addroute muss ein eindeutiger Name sein und nicht direkt dem Controller entspricht, wie ich angenommen habe.

Vielen Dank an d__asmoka, lutinvert auf #Zftalk. Ich werde das so schnell wie möglich akzeptieren (Minimum ist 2 Tage).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top