2017-10-13 1 views
0

Je suis un moment difficile à trouver comment faire une route pour ce cas: http://wwww.domain.com/category-slug/product-slug je pensais qu'il était en tâche facile et j'ajouter rapidement cette ligne dans route.phpCI Route conflictualité

$route['([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)'] = "products/show";

mais , c'est aussi me rediriger sur chaque page comme http://wwww.domain.com/admin/dashboard et ainsi de suite mais, je veux explicitement utiliser seulement pour mes produits. Comment aborder ce problème?

Répondre

0

C'est parce que, premier segment admin et dashboard dans les deuxièmes correspondances [a-zA-Z0-9-]+ et remappé à la classe/contrôleur products et la méthode show/fonction.

Si vous pouvez créer url comme quelque chose

products/category-slug/product-slug 

Ensuite, si vous définissez la route comme ci-dessous

$route['products/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)'] = 'products/show/$1/$2'; 
+0

Non, je ne veux pas utiliser le mot-clé produits dans mon itinéraire. –

+0

Les routes sont exécutées dans l'ordre, donc vous définissez d'abord le routage de votre contrôleur admin puis pour vos produits, le plus simple est de créer une URL comme ci-dessus ... Sinon, comment identifiez-vous l'URL est destinée aux contrôleurs –

+0

Pouvez-vous me dire comment utiliser les requêtes de base de données dans 'route.php' –

0

Je pense que vous avez besoin d'utiliser quelque chose comme ça

$route['products/(:any)/(:any)'] = 'Product_controller/product_function/$1/$2' 

l'intérieur de votre fonction, vous pouvez avoir quelque chose comme ça

public function product_function(cat_slug, pro_slug){ 
    //Some code here 
}