我使用config form_validation.php,如何从控制器向该文件发送变量(form_validation.php)?
在我的form_validation.php中,我有:
array(
'field' => 'edituser_email',
'label' => 'Email',
'rules' => "required|trim|xss_clean|valid_email|edit_unique[users.email.$user_id]",
'errors' => array(
'required' => 'Campo obligatorio.',
'valid_email' => 'Formato de correo no válido.',
'edit_unique' => 'Ya existe un usuario con este correo.'
)
)
我需要发送" user_id"变量通过Controller。
我已经尝试过:
$data['user_id'] = $id;
if ($this->form_validation->run('edit_user',$data) === FALSE)
但我得到错误:
消息:未定义的变量:user_id。
感谢您的帮助。
答案 0 :(得分:1)
无需将参数传递给$this->form_validation->run()
,只需在执行之前设置规则。
$this->form_validation->set_rules('name', lang('title'), 'required|trim');
$this->form_validation->set_rules('description', lang('description'), 'required');
$this->form_validation->set_rules('slug', lang('slug'), 'trim|required|is_unique[categories.slug]|alpha_dash');
if ($this->form_validation->run() == true)
{
$data = array(
'name' => $this->input->post('name'),
'description' => $this->input->post('description'),
'parent_id' => $this->input->post('parent_category'),
'slug' => $this->input->post('slug'),
'active' => $this->input->post('active'),
'private' => $this->input->post('private'),
);
}
答案 1 :(得分:1)
我不尝试,但我认为,如果你向数组帖子添加一个变量,就像这样,它可以工作。
$this->input->post['user_id'] = $user_id;
答案 2 :(得分:1)
作为文档here 在文档中,如果要覆盖发布数据,则需要在运行验证之前先设置数据。
代表:
$post_data = array_merge(array('user_id' => $id), $this->input->post(NULL, TRUE)); //merge existing post data with your custom field
$this->form_validation->set_data($post_data);
然后
if ($this->form_validation->run('edit_user') === FALSE){
// error view
}
else{
// success view
}