【发布时间】:2016-04-06 12:45:49
【问题描述】:
我是 codeigniter 的新手,现在尝试解决以下问题几个小时。 我尝试在表单中设置值,但是当我设置它时出现以下错误:
遇到 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');
【问题讨论】:
-
您不必加载表单助手两次。仅将其保留在自动加载中,以便在所有控制器中全局使用它,但从控制器中删除。另外,更改控制器的名称以避免可能的名称冲突,因为 CodeIgniter 已经有 Form 类。毕竟,自动加载 url helper 也是如此。
-
谢谢你,改变了一切,但仍然是同样的问题。自动加载中是否有任何顺序设置?
-
不多,因为在
autoload.php中加载的所有类都在控制器之前加载。文档中的基本示例是否适合您? -
是的,基本示例工作正常。我以为我可以用我自己的表单和控制器进行 1:1 的操作,但我错了。
-
也许我收到此错误是因为我的表单处于模态...
标签: codeigniter setvalue