CodeIgniter 2.1.0 form_validation config

JSergRu

..ιilliιlιiιliιllilιι..
Есть конфигурационный файл для контроллера Аuth
PHP:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(

	'auth login pattern' => '^[a-zA-Z0-9_\-\.]+$',

		);
/* Location: ./application/config/auth.php */
Также есть конфигурационный файл для библиотеки Form_validation
PHP:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'auth/register' => array(	
	array(
		'field' => 'login', 
		'label' => 'lang:auth login lable', 
		'rules' => 'trim|required|prep_for_form|'.
		           // 'regex_match[/'.$this->config->item('auth login pattern').'/]|'.
		           'xss_clean|is_unique[users.login]'
	)
);
/* Location: ./application/config/form_validation.php */
Без использования конфиг-файла (при объявлении правил валидации в контроллере) работает без нареканий, при попытке вынести правила в конфигурационный файл появляeтся ошибка отсутствия свойства item у объекта CI_Loader.

Вопрос: как грамотно в файле form_validation.php значению с индексом 'rules' присвоить значение массива из файла auth.php с индексом 'auth login pattern'?
 

JSergRu

..ιilliιlιiιliιllilιι..
Решил проблему возложением функции опрелеления правил валидации на модель:
PHP:
class Auth extends CI_Model {

    public function get_form_validation_rules($value = '')
    {
        switch ($value) 
        {            
            case 'login':
                return
                array(
                    array(    
                        'field' => 'login',
                        'label' => 'lang:authci login lable', 
                        'rules' => 'trim|required|'.
                                   'min_length['.$this->config->item('authci login min').']|'.
                                   'max_length['.$this->config->item('authci login max').']|'.
                                   'regex_match[/'.$this->config->item('authci login pattern').'/]|'.
                                   'xss_clean|'.
                                   ''
                    ),
                    array(
                        'field' => 'password', 
                        'label' => 'lang:authci password lable', 
                        'rules' => 'trim|required|'.
                                   'min_length['.$this->config->item('authci password min').']|'.
                                   'max_length['.$this->config->item('authci password max').']|'.
                                   'regex_match[/'.$this->config->item('authci password pattern').'/]|'.
                                   ''
                    ),
                );
            break;
            
            default:
                
            break;
        }
    }
 
}
И тут мне участник одного из форумов, посвященных CI заявляет:
Я бы сделал в хелпере, на худой конец в библиотеке. Стандартно - в контроллере (в том числе можно в MY_Controller) или в конфиге.
Отчего у меня на лоб глаза полезли, насколько я понял в MVC именно модель отвечает за исходный массив данных, а helper (по крайней мере в CI) используется для обработки переданных им переменных (и для упрощения синтаксиса), использовать библиотеку... хм... тут даже слов нет... или я неправ??
 

флоппик

promotor fidei
Команда форума
Партнер клуба
насколько я понял в MVC именно модель отвечает за исходный массив данных, а helper (по крайней мере в CI) используется для обработки переданных им переменных (и для упрощения синтаксиса), использовать библиотеку... хм... тут даже слов нет... или я неправ??
Ты понял правильно. Но на твоем месте уже бы перешел на кохану.
 
Сверху