Маршрутизация URI в CodeIgniter

#php #codeigniter #routing #uri

#php #codeigniter #маршруты #uri

Вопрос:

Эта ссылка работает site.tv/admin/edit/ (controllers/admin/edit.php) , но это не работает site.tv/admin/reg/edit/ (controllers/admin/reg/edit.php) Это слишком длинный путь к контроллеру?

Ответ №1:

Ваша маршрутизация должна быть index.php/CLASS / METHOD /ID

Цитата из application/config/routes.php

Обычно существует взаимно однозначная связь между строкой URL и соответствующим ей классом / методом контроллера. Сегменты в URL обычно следуют этому шаблону:

example.com/class/method/id/

например

 class test extends CI_Controller{

    public function hello() {
        echo 'hello world';
    }

    public function meep() {
        echo 'meeeeeep';
    }

    public function param($value){
            echo 'Your parameter is '. $value;
    }
}
  

Тогда ваш URL должен быть index.php/test/hello , index.php/test/meep и index.php/test/param/whataeverhere

Обновить:

Если вам нужно «несколько пакетов», создайте подкаталоги для ваших «пакетов», как в

 controllers
    ->admin
           ->reg
                ->myfile.php
                ->myfile2.php
           ->reg2
                ->myfile.php
                ->myfile2.php
  

а затем создайте свои пользовательские маршруты в routes.php под application/config/ папкой

Комментарии:

1. Но если я хочу создать несколько пакетов

2. @VITr что вы подразумеваете под «несколькими пакетами»?

3. Для exmaple у нас есть admin пакет, в котором хранятся контроллеры, связанные с администратором. В этом пакете создайте несколько новых для работы с регистрацией списков продуктов. admin/reg/ admin/products/ — в этих пакетах затем создаются контроллеры для всех видов операций

Ответ №2:

Я думаю, что это проблема с CHMOD. проверьте, доступны ли для чтения файлы reg.

Комментарии:

1. Проверил разрешение, но оно по-прежнему возвращает страницу 404, которая не найдена