CodeIgniter加载文件与数据参数

时间:2014-02-20 15:30:13

标签: php codeigniter codeigniter-2

CodeIgniter中是否有任何选项加载参数的文件,如在视图中?

在我的控制器中,我加载了这个文件:

$path_to_logic = "extended_core/plugins/saphir_e-cms/be_extensions/$this->modul_id/package/logic.php";     
$logic = $this->CI->load->file($path_to_logic, true);

我在控制器中有一个array(),我会传递给加载的文件,就像视图中的$data var一样。

2 个答案:

答案 0 :(得分:1)

您需要将此功能添加到Loader类。

为了做到这一点,在MY_Loader.php文件夹中创建一个名为application/core/的新文件,如下所示:

/**
* My Custom Loader
*/
class MY_Loader extends CI_Loader
{   
    function __construct()
    {
        parent::__construct();
    }

    /**
     * Custom File loader method
     *
     * @param  string  $path
     * @param  array   $vars
     * @param  bool    $return
     * @return void
     */
    public function file($path, $vars = array(), $return = FALSE)
    {
        return $this->_ci_load(array(
            '_ci_path' => $path,
            '_ci_vars' => $this->_ci_object_to_array($vars),
            '_ci_return' => $return
        ));
    }
}

然后使用以下值加载文件:

$logic = $this->CI->load->file($path_to_logic, array('foo' => 'bar'), true);

在文件中,您将拥有$foo

答案 1 :(得分:0)

为什么不给它分配这样的东西..

$this->CI->custom_array = array();
$this->CI->custom_array = // Load in array data via function etc..

然后在视图等中使用它。