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

[model问题]如何在一个model中调用另一个model中的函数

[复制链接]
发表于 2008-11-21 18:12:00 | 显示全部楼层 |阅读模式
class A extends Model {
        function A() {
            parent::Model();
        }  
        function foo() {      
                echo "hello from A";
        }//end of function foo
    }//end of A

    class B extends Model {
        function B() {
            parent::Model();
        }         
        function bar() {
            $this->B->foo();            //这行出错
        }//end of function bar        
    }//end of B

毫无疑问上面的例子会出错,那么如何实现上例所示的功能,即从model A中调用另一个model B中的函数
发表于 2008-11-21 23:20:39 | 显示全部楼层
不能这么调用。
发表于 2008-11-22 17:01:31 | 显示全部楼层
require_once 'model_b.php'

$b = new Model_B;

差不多这样子,就是传统的OOP读取方式。
发表于 2008-11-23 21:11:16 | 显示全部楼层
通过 get_instance() 取得控制器的句柄引用 调用
$CI =& get_instance();
$CI->A->?
$CI->B->?
发表于 2008-11-24 14:32:22 | 显示全部楼层
控制器没有句柄,CI 一次执行中只有一个控制器实例,那就是 get_instance() 取得的超级对象。
发表于 2008-11-24 14:41:01 | 显示全部楼层
这个问题可以用一下ActiveRecord http://codeigniter.com/wiki/ActiveRecord_Class_Mod/,昨天晚上看了一下这个代码有些问题,不过看一下代码很容易改过来,今天没带小黑,改天把我改造过的发上来
发表于 2008-11-25 09:58:23 | 显示全部楼层
下面的資訊雖然與樓主的問題無關,但我想算是不錯的資訊
最近在官網發現,有一個提供從控制器調用另外一個控制器結果的 library
http://codeigniter.com/forums/viewthread/80279/

本版积分规则