在Codeigniter中定义全局(动态)变量



是否有在Codeigniter中定义动态全局变量的方法?我需要经常使用:

$this->session->userdata('user_id')

在我的代码中,我真的不想总是把它打出来。我在另一个项目中使用了如下代码:

$this->mid = $this->session->userdata('user_id')

在控制器的构造函数中,使它可以被该控制器中的每个方法访问,但是我必须在每个其他控制器构造函数中重新定义它。我知道我听起来很懒,但我只是想让最好的DRY代码成为可能。我知道你可以在config/config.php文件中指定静态变量,但这些变量是动态的-所以我认为你无法访问该文件中的$this对象(或其他东西)。

是否有使这样一个会话变量全局?

创建自定义控制器MY_Controller.php:

<?php
    class MY_Controller extends Controller {
        var user_id = '';
        function __construct() {
            parent::__construct();
            $this->user_id = $this->session->userdata('user_id');
        }
    }
?>

然后通过控制器扩展控制器,例如控制器Welcome.php:

<?php
    class Welcome extends MY_Controller {
        function __construct() {
            parent::__construct();
        }
        function index() {
            var_dump( $this->user_id );
        }
    }
?>

你可以在MY_Controller中设置全局变量,并在每个扩展自定义变量的控制器上使用它。

相关内容

  • 没有找到相关文章

最新更新