我使用了很多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
答案 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);
}
}