abayomi.zou 发表于 2011-3-9 13:55:29

CI新手的问题,在view内调用model

本帖最后由 abayomi.zou 于 2011-3-9 14:00 编辑

我想在view内调用model,写了下面的代码

        $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

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'>");
        }

}

visvoy 发表于 2011-3-9 19:59:42

view里面的$this=CI_Loader=controller里面的->load,
loader只有在php4环境中才能使用->这种语法,因为php4里面loader=controller
php5环境loader和controller不是一个object

thesnake 发表于 2011-4-10 14:39:31

回复 2# visvoy


    具体到底应该怎么调用?我也遇到了这样的问题, 不知道怎么解决

visvoy 发表于 2011-4-10 16:22:37

$CI=&get_instance();
$CI->model_name->model_method();
页: [1]
查看完整版本: CI新手的问题,在view内调用model