Я знаю, что этот вопрос задавался аналогичным образом несколько раз. Тем не менее, я изо всех сил пытаюсь найти ответы, которые будут работать в моей ситуации. Я в первую очередь работаю над проектами Microsoft и участвовал в этом проекте, чтобы помочь во время хруста.Codeigniter Динамическая маршрутизация на один контроллер
Прошлая ситуация.
У нас есть клиент, у которого есть сайт с более чем 600 различными страницами. В действительности на каждой странице используется один и тот же шаблон, который заполняется разными данными. Мы разработали для него CMS, который позволяет ему создавать новые страницы по своему усмотрению.
Мое идеальное решение позволило бы мне сохранить имя вновь созданной страницы в БД. Пример. new_page_1 был создан и теперь существует в БД. Теперь, когда я печатаю по адресу www.mysite.com/new_page_1, это нужно перейти к контроллеру, который ищет «new_page_1» (в БД), и если он существует, загружает представление (ЭТОТ ВЗГЛЯД, ЧТОБЫ ИСПОЛЬЗОВАТЬСЯ ДЛЯ ВСЕХ 600 страниц), которые затем берет другие данные из БД и заполняет различные разделы.
По существу, более 600 страниц должны использовать один и тот же массив маршрутов и сопоставлять их с одним и тем же контроллером, который затем сопоставляется с одним и тем же видом.
Я пробовал использовать $ route ['(: any)'] = 'custom_controler/create/$ 1, а также тот же ключ массива, но используя main и _remap. Независимо от того, что каждый раз он пытается искать имя страницы в моих представлениях (чего она никогда не будет существовать, потому что я использую один общий вид для 600 страниц)
Любые идеи о том, как это сделать?
UPDATE routes.php (это последняя строка в файле)
$route['(:any)'] = "main/create/$1";
main.php (контроллер)
class Main extends MY_Controller {
public function __construct() {
parent::__construct();
}
public function create($page)
{
$c = new Category();
$c->get_by_name(ucfirst($page));
$this->load->view('site/index',$c);
}
}
URL, я пытаюсь имя файла sitename.servername.com/health и имя сервера явно заменены.
Ошибки я получаю
Обнаружена ошибка
Не удалось загрузить требуемый файл: здоровье/главная/create.php
Это возможно, я считаю, что мы используем Nginx. Как я уже сказал, я не сторонник веб-сайта здесь, поэтому я не слишком хорошо знаком с нашим веб-сервером или даже с кодерингом. Мне нужно обсудить это с нашим ведущим веб-разработчиком завтра и посмотреть, сможет ли он понять, почему он указывает на файл, который не существует. Спасибо за вашу помощь!. –
На самом деле в файле My_Controller была строка кода, которая заставляла его использовать первый сегмент uri в качестве имени класса, я вытащил его, и теперь он отлично работает. –