CodeIgniter的新手,也是Ocular的新手,所以请耐心等待。
我在运行表单验证时使用以下方式编码(其中index()方法包含表单加载代码):
if ($this->form_validation->run() == FALSE)
{
$this->index();
}
else
{
$this->load->view('view_name', $data);
}
但是我现在正在尝试使用Ocular Template Library并且上面的代码不再有效,请参阅下面的示例:
if ($this->form_validation->run() == FALSE)
{
$this->index();
}
else
{
$this->template->set($data);
$this->template->render();
}
上面的代码没有像没有Ocular那样使用索引方法,我想知道最佳做法是什么来纠正这个问题,或者即使我之前的代码是最佳实践?
此致 Numan1617
答案 0 :(得分:1)
有时很难确定Codeigniter的最佳实践,因为它没有惯例,所以我真正能够告诉你的是我的经验是如何最好的...
我假设您的表单视图正在通过index()
提供,然后您将表单提交给此(单独)控制器函数,该函数验证并处理表单数据,并重新显示视图错误,如果有问题...
我会把它全部整合到一个函数中来清理它......
public function form()
{
//if this is a post request
if ($_POST)
{
//check the validation
if ($this->form_validation->run())
{
//process it
//and then redirect if you want to send to a "success" page
redirect('uri/to/success');
}
else
{
//load up $data values to re-display form
}
}
//load up any $data values needed for standard view
$this->load->view('view', $data);
// or $this->template stuff...
}
在我看来,在内部调用控制器功能是一条糟糕的路线,例如。 $this->index()