从库中调用模型函数

时间:2010-03-28 15:11:59

标签: php model-view-controller codeigniter class

我已将普通的PHP类转换为库,因此我可以在Codeigniter中将其用作库。我可以加载它并调用该类中需要的函数。 Here is that class to help with the question

但是,我必须在课堂上调用函数。这些函数驻留在实例化我的类的模型中。我怎么能这样做,因为目前正常的通话不起作用。这是我的代码:


class Controlpanel_model extends Model {

    var $category = '';
    var $dataa = 'a';

    function Controlpanel_model(){      

        parent::Model();

    }

    function import_browser_bookmarks(){

        $this->load->library('BookmarkParser');
        /*
        *In this function call to the class I pass 
        * what model functions exist that it should call
        * You can view how this done by clicking the link above and looking at line 383
        */
        $this->bookmarkparser->parseNetscape("./bookmarks.html", 0, 'myURL', 'myFolder'); 
        return $this->dataa;

    }

    function myURL($data, $depth, $no) { 

        $category = $this->category;
        $this->dataa .= 'Tag = '.$category.'<br />'.'URL = '.$data["url"].'<br />'.'Title = '.$data["descr"].'<br />'.'<br /><br />';
    } 

    function myFolder($data, $depth, $no) {

        $this->category = $data["name"];

    }   

}

感谢大家的帮助。

1 个答案:

答案 0 :(得分:2)

为了澄清一下,您在调用传递给书签分析器的模型函数时遇到问题?

在您的资料库中,您需要通过以下方式参考模型本身及其功能:

// Based on the signature you provided
parseNetscape($url, $folderID, $urlFunction, $folderFunction) {
   get_instance()->Controlpanel_model->$urlFunction();
   get_instance()->Controlpanel_model->$folderFunction();
}

我们需要使用get_instance(),因为Libraries不会继承所有的CI好东西。 这将假设您的模型已加载。我不确定你遇到什么问题,引用$ CI实例或动态调用函数。

希望这就是你要找的东西。