codeigniter config form_validation,子文件夹不起作用

时间:2013-10-26 14:03:03

标签: codeigniter validation config subdirectory

我使用了很多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 个答案:

答案 0 :(得分: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);
    }

}