我是关于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');
答案 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'];
它对我有用