2012-01-24 73 views
0

我正在与wiredesignz模块化扩展codeigniter一起工作,我想知道是否有可能从模块的控制器访问常规codeigniter控制器的公共属性 例如,这是一个常规的ci控制器从hmvc模块访问控制器公共控制器属性

<?php 

class Dog extends CI_Controller { 
    public $name; 


    function __construct() 
    { 
     $this->name = "xyz"; 
    } 

} 

这个模块控制器

<?php 
    class Test extends MX_Controller { 
    function get_name() 
    { 
     //access the $name property of the dog controller here 
    } 
    } 
+0

你真的尝试过吗?如果我没有记错,MX_Controller扩展了CI_Controller,所以公共和受保护的变量应该被继承。看看这个答案:http://stackoverflow.com/a/6456965/844726 – swatkins

回答

1

如果您使用HMVC没有理由为什么你的控制器的全部或任何无法从MX_Controller继承。您可以在正常的应用程序/控制器或继承MX_Controller的应用程序/核心文件夹中拥有控制器,它们不必是“模块”控制器。 如果您需要从另一个控制器访问另一个控制器的属性,为什么不创建一个基本控制器,例如MY_Controller扩展了MX_Controller,将它放在应用程序/控制器或应用程序/内核中,然后每次创建“模块”控制器时,只需从MY_Controller而不是MX_Controller继承。

不要忘记你可以加载任何模块控制器,并像库类一样使用它。