Codeigniter - 调用未定义的函数set_value()

时间:2016-01-02 11:06:10

标签: codeigniter setvalue

我是关于codeigniter的新手,现在尝试解决以下几个小时的问题。 我尝试在表单中设置set_value,但是当我设置它时,我得到以下错误:

遇到PHP错误 严重性:错误 消息:调用未定义的函数set_value() 文件名:modals / register_modal.php 行号:27 回溯:

当我在第27行删除set_value()时,一切正常。

第27行是set_value()行:

<div class="row"> 
 <div class="form-group">
  <label class="control-label sr-only">Vorname:</label>
   <div class="col-md-8 col-md-offset-2 col-xs-10 col-xs-offset-1">
   <input type="text" class="form-control" name="firstname" placeholder="Vorname" value="<?php echo set_value('firstname'); ?>" size="50" />
   <i class="fa form-control-feedback" aria-hidden="true"></i>
   </div>
  </div>
</div>

这就是我的控制器:

class Form extends CI_Controller {

        public function index()
        {
                $this->load->helper('form');

                $this->load->library('form_validation');

                $this->form_validation->set_rules('firstname', 'Vorname', 'required|callback_username_check');
                $this->form_validation->set_rules('surename', 'Nachname', 'required');
                $this->form_validation->set_rules('email', 'Email', 'required');
                $this->form_validation->set_rules('password', 'Passwort', 'required');

                if ($this->form_validation->run() == FALSE)
                {
                        $this->load->view('modals/register_modal');
                }
                else
                {
                        $this->load->view('modals/login_modal');
                }
        }

        public function username_check($str)
        {
                if ($str == 'test')
                {
                        $this->form_validation->set_message('username_check', 'The {field} field can not be the word "test"');
                        return FALSE;
                }
                else
                {
                        return TRUE;
                }
        }

}

我还设置了自动加载:

$autoload['helper'] = array('form');

3 个答案:

答案 0 :(得分:5)

您必须在控制器中加载library('form_validation')。 这项工作对我来说:

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

class Login extends CI_Controller{

    public function __construct(){
        parent::__construct();
        $this -> load -> library('form_validation');
    }
....    

答案 1 :(得分:0)

在CodeIgniter4中,您只需使用 helper 函数来加载库

<?php namespace App\Controllers;
use App\Models\UserModel;
class Users extends BaseController {
public function index()
{
    helper (['form']);   
    ......

答案 2 :(得分:0)

添加辅助 HTML

protected $helpers = ['form','url','html'];

它对我有用