是否可以在codeigniter中的帮助器中使用多个$ this

时间:2015-06-02 09:17:02

标签: php codeigniter

我正在创建一个表单错误记录器,但由于我的register.php控制器已满,我想把它移到帮助器上,但问题是我不能使用$ this。

是的我已经检查过并且有一些anwsers通过使用:

解决了这个问题
function test()
{
    $CI =& get_instance();
    $CI->load->database();
    echo $CI->db->hostname; // give the config name here (hostname).
}

(引自Acess database config variables from a helper

然而我的问题是,我每个功能只能使用一个模型并且看到我试图移动的代码是这样的:

function submitCheck() {
    $this->load->model("User");
    if(empty($post)) { //If anything is empty the view will be loaded
        $this->load->view('includes/header.php');
        $this->load->view('error_message.php'); 
        $this->load->view('includes/footer.php'); 

        if(empty($post['firstname'])) //This is for the error log
        {  
            $this->load->helper('array', 'error'); //Loading the helper
            echo $msg = errorLog('firstname');
            $this->load->view('error_message.php');
        }        

        if(empty($post['mail'])) //This is for the error log
        {
            $this->load->helper('error'); //Loading the helper
            echo $msg = errorLog('mail');
        }
    }
    else
    {
        echo "Everything is filled in";
    }
}

因此,如果遵循代码示例,我必须为每个$ this制作大约4/5个函数。我应该创建一个在术语中加载其他加载器的加载器,还是可以使用user_loader加载其他视图/模型。

我是codeIgniter的首发,所以我可能只是觉得太困难而且有一个简单的修复,但我找不到它。任何帮助都是适当的

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据CodeIgniter documentation

  

与CodeIgniter中的大多数其他系统不同,Helpers不是写入的   面向对象的格式。它们是简单的程序功能。每   辅助函数执行一个特定的任务,不依赖于   其他功能。

不建议在您的情况下使用帮助程序。最好定义自定义库来管理大部分代码。