用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4346|回复: 3
收起左侧

[已解决] CI新手的问题,在view内调用model

[复制链接]
发表于 2011-3-9 13:55:29 | 显示全部楼层 |阅读模式
本帖最后由 abayomi.zou 于 2011-3-9 14:00 编辑

我想在view内调用model,写了下面的代码
PHP复制代码
 
        $this->load->model("m_util","util");
        $funcs = unserialize($this->session->userdata("func"));
        foreach($funcs as $func){
                printf("%s\n","<tr>");
                printf("%s\n","<td>");
                printf("%s\n",$func->name);
                printf("%s\n","</td>");
                printf("%s\n","<td>");
                printf("%s\n",$func->url);
                printf("%s\n","</td>");
                printf("%s\n","<td>");
                printf("%s\n",$this->util->showParentDir($funcs,$func->parent_id));--40
                printf("%s\n","</td>");
                printf("%s\n","</tr>");
        }
 
复制代码

出现错误
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_Loader:util
Filename: views/v_func.php
Line Number: 40
Fatal error: Call to a member function showParentDir() on a non-object in D:\MyPhp\tzjy\application\views\v_func.php on line 40

这样子不行的吗?应该怎么做才行呢。。
我用的CI2.0。

m_util.php代码如下:
PHP复制代码
 
<?php
 
class M_util extends CI_Model {
 
        function showParentDir($funcs,$sel){
                printf("%s\n","<select name='parent_id'>");
                printf("%s\n","<option value='0'>顶级目录</option>");
                foreach($funcs as $func){
                        if(isset($sel) && $sel==$func->func_id)
                                printf("%s\n","<option value='".$func->func_id."' selected>".$func->name."</option>");
                        else
                                printf("%s\n","<option value='".$func->func_id."'>".$func->name."</option>");
                }
                printf("%s\n","</select'>");
        }
 
}
 
复制代码
发表于 2011-3-9 19:59:42 | 显示全部楼层
view里面的$this=CI_Loader=controller里面的->load,
loader只有在php4环境中才能使用->[model_name]这种语法,因为php4里面loader=controller
php5环境loader和controller不是一个object
发表于 2011-4-10 14:39:31 | 显示全部楼层
回复 2# visvoy


    具体到底应该怎么调用?我也遇到了这样的问题, 不知道怎么解决
发表于 2011-4-10 16:22:37 | 显示全部楼层
$CI=&get_instance();
$CI->model_name->model_method();

本版积分规则