1

Тема: Route к функции с отрисовкой страницы

Добрый день!
Возможно кто-то встречался с данной проблемой, и сможет мне подсказать где искать её решение?

Есть тестовый сайт на Corporate 4.12.1, есть мой класс Bobik, в нем функция View, которая отрисовывает страницу через $this->template->show();
Я хочу, чтобы работал линк site.ru/bobik/1 и передавал в функцию view переменную 1, а не site.ru/bobik/view/1.

Прочитал кучу мануалов, но нигде не описано поведение после роутинга.
Делаю роут:
$route["bobik/(:num)"] = "bobik/view/$1";

Сам по себе роут работает, в функцию я попадаю, однако она теряет какую либо информацию о шаблонах, и натыкаясь на любое $this->template... выпадает с PHP Fatal error:  Call to a member function show() on null.

Пробовал делать _remap() в контроллере - эффект точно такой же.

Буду благодарен за помощь! Спасибо!

Thumbs up Thumbs down

2 Отредактировано CMS Admin (24-11-2017 00:36:21)

Re: Route к функции с отрисовкой страницы

Пишите модуль bobik, в файле \application\modules\bobik\bobik.php будет основная функция

<?php 

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

class Bobik extends MY_Controller
{
  protected $moduleName = 'bobik';
    
  public function __construct(){
    parent::__construct();
    $lang = new MY_Lang();
    $lang->load($this->moduleName);
  }
  
  public function index($id) {
    dump($id);
    $this->template->show();
  }
}

3

Re: Route к функции с отрисовкой страницы

Спасибо за ответ.
Да, у меня был написан модуль. Я убрал роуты, полностью взял Ваш модуль, однако страница по bobik/1 не отрисовывается, а уходит в 404.
Может быть я что-то упустил или неправильно понял?

Thumbs up Thumbs down

4

Re: Route к функции с отрисовкой страницы

В индекс невозможно передать post, get. Он служит для обращения к самому модулю.
Нужно создать дополнительную функцию, и уже в нее передавать запросы.

Но судя по первому посту, для вас это не вариант.

Когда то разрабатывал модули для ImageCMS Corporate

5

Re: Route к функции с отрисовкой страницы

Так в том и дело, что мне бы и не нужно в сам индекс передавать. Я поэтому и хотел сделать роут $route["bobik/(:num)"] = "bobik/view/$1"; Дабы индекс не трогать и в модуле не искалась функция с именем 1, а всё шло во view, а из самого линка view исключить.

Thumbs up Thumbs down