我在codeigniter中使用Tank_auth进行用户身份验证。要检查是否有用户登录,如果他要获取用户名和ID,我需要在我的控制器的每个功能中使用以下代码,这非常令人恼火。
// If any user is logged in get his/her userid or name
if ($this->tank_auth->is_logged_in()) {
$data['user_id'] = $this->tank_auth->get_user_id();
$data['username'] = $this->tank_auth->get_username();
}
所以,我想知道我是否可以通过将以下代码放在function __construct()
中来改善生活,如下所示:
但它不起作用。
你能告诉我如何让它发挥作用吗?
提前致谢:)
function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->library('tank_auth');
if ($this->tank_auth->is_logged_in()) {
$data['user_id'] = $this->tank_auth->get_user_id();
$data['username'] = $this->tank_auth->get_username();
}
}
答案 0 :(得分:4)
如果您打算仅在此控制器内使用此数组,则可以像这样使用它:
//outside the functions define the $data as controller class property:
private $data = array();
function __construct()
{
parent::__construct();
$this->load->helper('url');
$this->load->library('tank_auth');
if ($this->tank_auth->is_logged_in()) {
$this->data['user_id'] = $this->tank_auth->get_user_id();
$this->data['username'] = $this->tank_auth->get_username();
}
}
//and then use it like
function index(){
$this->load->view("something.php",$this->data);
}