#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, которая не найдена