2010-09-05 3 views
1
<?php 
class MY_Form_validation extends CI_Form_validation { 

    function My_Form_validation() 
    { 
     parent::CI_Form_validation(); 
    } 

} 

Это код в файле MY_Form_validation.php, который я создал в папке с моими библиотеками CI. Там были некоторые функции, но я удалил их, чтобы попытаться разобраться в этом.Расширение библиотеки расширения Codeigniter НЕ работает. Нет причин

Используя это расширение библиотеки, проверка формы просто не работает. У меня есть все правила проверки формы в файле конфигурации.

Если я удалю MY_Form_validation.php, все будет работать отлично.

Сообщение на панели CodeIgniter не дало никаких результатов.

Возможно, здесь кто-то может помочь? Спасибо

+0

любая ошибка-выход? – teemitzitrone

+0

Нет. Страницы загружаются нормально, но все мои if (formvalidated) запросы возвращаются false. –

ответ

5

Попробуйте это вместо этого. Вам нужно передать массив $ config из расширенного класса в CI_Form_validation. Также убедитесь, что орфография правильная и чувствительная к регистру.

class MY_Form_validation extends CI_Form_validation { 

    function MY_Form_validation($config = array()) 
    { 
     parent::CI_Form_validation($config); 
    } 
+0

Brilliant - Используя это, действуют обычные правила валидации. У меня еще не было возможности реализовать мои пользовательские функции, но я думаю, они будут работать. Не могли бы вы рассказать о том, почему этот $ config var должен быть передан? Является ли это документированным где угодно? На форумах CodeIgniter я был проинформирован установленным членом о том, что они использовали тот же код, что и MINE, и он работал. Таким образом, у меня есть разрешение, но я действительно не понимаю. Cheers –

+0

Класс загрузчика CI для соответствующего файла конфигурации при загрузке библиотек. Это происходит _ci_init_class() в CI_Loader. Массив $ config, определенный в system/application/config/form_validation.php, передается расширенному классу, а не CI_Form_validation. Вот почему вам придется передать его из вашего расширенного класса самостоятельно в CI_Form_validation в конструкторе - здесь вы также можете установить новые правила. Надеюсь, это поможет вам немного :) – rkj

3

В случае, если вы перешли CodeIgniter 2.0.x или более поздней версии убедитесь, что вы измените приведенный выше код:

class MY_Form_validation extends CI_Form_validation { 

function MY_Form_validation($config = array()) 
{ 
    parent::__construct($config); 
} 

Обратите внимание на изменение от:

parent::CI_Form_validation($config);

Кому:

parent::__construct($config);

Определенно вызвало у меня проблему немного!

1

Сделать имя файла в прикладной директории/библиотеки: MY_Form_validation.php

затем в классе

Код:

class MY_Form_validation extends CI_Form_validation 

{ 
function My_Form_validation() 
    { 
     parent::CI_Form_validation(); 
    } 

} 
Смежные вопросы