Codeigniter Ocular和表格验证

时间:2011-08-18 13:16:04

标签: php codeigniter

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

1 个答案:

答案 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()