Ich habe einen Weg, der wie folgt aussieht:Wie verhindert man, dass Controller und Aktion in CakePHP in URL kommen?
Router::connect('/Album/:slug/:id',array('controller' => 'albums', 'action' => 'photo'),array('pass' => array('slug','id'),'id' => '[0-9]+'));
und andere wie folgt aus:
Router::connect('/Album/:slug/*',array('controller' => 'albums','action' => 'contents'),array('pass' => array('slug')));
für das, was die erste nicht übereinstimmt. In der 'contents' Aktion des 'Alben' Controllers kümmere ich mich selbst um die Paginierung - was bedeutet, dass ich den benannten Parameter 'page' abrufe. Eine URL für die zweite Route würde wie folgt aussehen: http://somesite.com/Album/foo-bar/page:2
Die oben aufgeführte URL tatsächlich funktioniert, aber wenn ich versuche, den HTML-Helper (url, Link), um eine URL wie diese zu verwenden, fügt es den Controller und Aktion zum Anfang, so: http://somesite.com/albums/contents/Album/foo-bar/page:2
Was ich nicht mag. Der Code, der die Htmlhelper verwendet, ist als solche:
$html->url(array('/Album/' . $album['Album']['slug'] . '/page:' . $next))
Ich war gezwungen, eine andere Lösung zu verwenden. Kennzeichnen Sie Ihre Antwort immer noch als korrekt. – r0nny1l