2012-06-02 2 views
1

У меня есть контроллер с именем категории и одна функция в нем называется индексом с 1 параметром $ cat_idCodeIgniter требует его имя

так это выглядит следующим образом:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class categories extends CI_Controller { 

    function __construct(){ 
     parent::__construct(); 
    } 

    public function index($cat_id = null){ 

    } 
} 

проблема возникает, когда я называю это из браузера ... я использую это:

http://www.mysite.dev/categories/12311323 

но возвращает 404 ошибку страницы

вместо этого, если я использую

http://www.mysite.dev/categories/index/12313131 

будет работать нормально ...

как я могу убедиться, что он не будет нуждаться в индекс в URL для индексной функции?

ответ

6

Маршрутизация по умолчанию CodeIgniter - это/controller/function/argument. Чтобы указать аргумент, вам нужно сначала указать функцию. Если вы хотите указать аргумент без функции, вам нужно определить собственный маршрут. Добавление этой строки в файл конфигурации маршрута должно делать то, что вы хотите.

$route['categories/(:num)'] = "categories/index/$1"; 
+0

да я имел это, но я забыл добавить/индекс/... блин, мне нужно немного поспать – fxuser

+0

благодаря @Slipflurry это очень полезно ........ – Neeraj

1

Что вы описываете по умолчанию (предварительно сконфигурированные) маршруты CI. Вы можете определить свой собственный, чтобы сделать шаблон, который вы описываете, в своей работе с вопросами. См.: URI Routing

Смежные вопросы