CodeIgniter не любит методы в представлениях? - PullRequest
2 голосов
/ 09 ноября 2008

Я играю с CodeIgniter; в надежде превратить мой старый, некрасивый PHP в более удобную среду. Однако я столкнулся с довольно разочаровывающим препятствием - я не могу определить методы в своих взглядах. Каждый раз, когда я пытаюсь получить, я получаю полностью пустую страницу, и когда я просматриваю журнал отладки, обработка, кажется, останавливается после загрузки представления. Могу ли я определить методы в представлениях? Если нет, то почему и какие обходные пути вы бы предложили?

Примечание : метод связан с форматированием выходных строк.

Ответы [ 3 ]

11 голосов
/ 09 ноября 2008

Определите свои функции в помощнике и загрузите их из контроллера. Таким образом, вы можете использовать функции и в других представлениях.

0 голосов
/ 10 октября 2011

Представления не предназначены для вызова действий контроллера. Обратитесь к своей логике, вызовите эту функцию в контроллере и установите для нее переменную, которую вы отправили в представление. Затем вы можете сделать так, чтобы оператор if проверял эту переменную в вашем шаблоне представления.

Если это не работает для вас, возможно, вам нужен помощник: http://codeigniter.com/user_guide/general/helpers.html

0 голосов
/ 09 ноября 2008

Я не знаком с CodeIgnitor, но он может включать ваши шаблоны несколько раз. Попробуйте обернуть свою функцию в чек:

if (!function_exists('myfunc'))
{
    function myfunc() {}
}

CodeIgnitor, вероятно, глотает ошибки, поэтому вы также можете попробовать очистить буферы непосредственно перед вашей функцией:

while(ob_end_flush()){}
error_reporting(E_ALL);
ini_set('display_errors', 1);

В действительности, вы, вероятно, должны сделать свой код форматирования строки более общим. Ваш шаблон не очень подходит для добавления функций. Вы начнете дублировать код, и он полностью отрицает необходимость иметь шаблоны. Я бы предложил поэкспериментировать с помощниками CodeIgnitor и плагинами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...