我似乎无法弄清楚我的问题,希望有人可以提供帮助 . 我正在使用codeigniter 3 HMVC,在我的表单验证中我使用规则is_unique它工作正常除了如果我想使用回调,我需要像这样扩展CI_form_validation:
https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc
“在使用MX进行表单验证时,您需要扩展CI_Form_validation类,如下所示,”
<?php
/** application/libraries/MY_Form_validation **/
class MY_Form_validation extends CI_Form_validation
{
public $CI;
}
“在将当前控制器作为$ CI变量分配给form_validation库之前 . 这将允许您的回调方法正常运行 . (这也在CI论坛上讨论过) . ”
<?php
class Xyz extends MX_Controller
{
function __construct()
{
parent::__construct();
$this->load->library('form_validation');
$this->form_validation->CI =& $this;
}
}
当我进行此修改时,规则“is_unique”停止工作 . 有没有人知道它是什么?这是一个错误吗?
这是我的代码:
class Prod_parent extends MY_Controller {
function __construct() {
parent::__construct();
$this->load->library('form_validation');
$this->form_validation->CI =& $this;
}
function submit() {
$this->form_validation->set_error_delimiters('<p style="color:red;">', '</p>');
$this->form_validation->set_rules('grupo', 'nombre del grupo', 'trim|required|is_unique[prod_parent.product]');
if ($this->form_validation->run() == FALSE) {
$this->session->set_flashdata('error', validation_errors());
$this->new();
die();
} else {
die('works great');
}
谢谢你的帮助....我需要喝咖啡休息时间!
3 回答
1127行中的system / libraries / Form_validation.php
将isset()更改为is_object()
您可以参考此代码 .
在application / libraries / MY_Form_validation中,只需使用以下代码:
这将覆盖form_validation类的is_unique方法