2013-10-26 6 views
0

У меня есть файл конфигурации config_validation. Он работает хорошо!codeigniter config form_validation с неполными файлами

Но теперь я пытаюсь заставить его работать с контроллером в подкаталоге

/controllers/panel/users.php 

Мой конфигурационный файл form_validation выглядит

$config = array( 
'panel/users/edit/' => array(
     array('field' => 'login', 'label' => 'Логин', 'rules' => "trim|required|valid_email") 
) 

И мой контроллер Пользователи является

public function edit($user_id = FALSE) 
{ 
    if ($this->input->post('save')) 
    { 
     $this->load->library('form_validation'); 

     if ($this->form_validation->run()) 
     { 
      // Do some 
     } 
    } 
} 

Но $ this-> form_validation-> run() всегда возвращается FALSE

ответ

1

Он не предназначен для работы таким образом, произошло соответствующее изменение на ruri_string() #122, которое зафиксировало бы это, но оно имело other repercussions и нуждается в переосмыслении.

Вы можете позвонить правило проверки группы явно (падение слэш от вашего имени группы правил)

if ($this->form_validation->run('panel/users/edit')) 

или, если это необходимо в вашей ситуации, обходной путь это, предваряя uri->segment(1) к автоопределение группе правил ,

application/libraries/MY_Form_validation.php

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

class MY_Form_validation extends CI_Form_validation { 

    function run($group = '') 
    { 
     // Prepend URI to match subfolder controller validation rules 
     $uri = ($group == '') ? $this->CI->uri->segment(1) . $this->CI->uri->ruri_string() : $group; 
     return parent::run($uri); 
    } 

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