2009-11-22 5 views
1

J'essaye de construire un mini cms, où toutes les URL vont à l'action index d'un contrôleur 'products'. Le paramètre products_controller vérifie l'URL et la traite comme un paramètre. Ainsi, '/ widgets' accède à la fonction d'index ($ url) et transmet les 'widgets' au paramètre $ url.Routage CakePHP et admin avec une action 'catch all'

-je donc une recherche comme celui-ci contrôle d'un champ appelé url:

$product= $this->Product->find('first', array('conditions' => array('Product.url LIKE' => $url))); 

Je puis cracher ce produit $ à mon avis. Cette méthode signifie que je peux ajouter un produit dans ma base de données et spécifier l'URL du produit, sans avoir à ajouter d'éléments aux itinéraires. J'ai aussi une barre de navigation qui est simplement composée de toutes les URL dans la base de données, en utilisant un tout trouver.

Mon problème est mon routage et mon administrateur. Parce que je suis en train de router toutes les urls vers l'index() de products_controller, cela ne cause pas de problèmes avec ma section admin. J'ai mis mon admin dans un contrôleur séparé à cause de cela, et connecté manuellement les urls aux actions (index, vue, éditer, ajouter, supprimer). La chose est ma section d'admin ne fonctionne pas car les URLs sont mal acheminées, et c'est cassant le routage d'admin. Est-ce que n'importe qui peut voir une manière d'avoir une route de «attraper tous» comme cela, et AUSSI ont mon routage d'administration fonctionnant. J'espère que j'ai expliqué cela assez clairement, sinon s'il vous plaît crier comme je voudrais comprendre celui-ci.

+0

Très lié: http://stackoverflow.com/questions/1719199/cakephp-routing-without-id/1719412#1719412 – deceze

Répondre

2

Si vous avez un itinéraire qui remplace vos routes d'administration par défaut, vous ajoutez quelque chose de ce genre dans le fichier routes.php pour le remplacer.

Router::connect('/admin/:controller/:action/*', 
        array('admin'=>true)); 
+0

Perfection, merci :) –

Questions connexes