这是我的欢迎控制器
class Welcome extends MY_Controller
{
function __construct()
{
parent::__construct();
$this->load->library('tank_auth');
}
function index()
{
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else {
$this->load->view('welcome', $player);
}
}
}
MY_Controller
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->library('tank_auth');
if ($this->tank_auth->is_logged_in()) {
$player = $this->tank_auth->get_userdata($this->tank_auth->get_user_id());
if ($player === NULL) {
$this->tank_auth->logout();
}
}
}
}
我:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: player
Filename: controllers/welcome.php
Line Number: 17
Hi,
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: username
Filename: views/welcome.php
Line Number: 1
我真的需要重新分配所有的数据吗?还有别的办法吗?
$player
设置在MY_Controller
类的__construct()
中。Welcome
类中的index()
函数如何自动获取其值?
将$player
定义为MY_Controller
类中的受保护属性,以便每个扩展它的控制器类都可以使用$player
的值。
class MY_Controller extends CI_Controller
{
protected $player;
function __construct()
{
parent::__construct();
$this->load->library('tank_auth');
if ($this->tank_auth->is_logged_in()) {
$this->player = $this->tank_auth->get_userdata($this->tank_auth->get_user_id());
if ($this->player === NULL) {
$this->tank_auth->logout();
}
}
}
}
现在你的Welcome类可以使用它的值了
class Welcome extends MY_Controller
{
function __construct()
{
parent::__construct();
$this->load->library('tank_auth');
}
function index()
{
if (!$this->tank_auth->is_logged_in()) {
redirect('/auth/login/');
} else {
$this->load->view('welcome', $this->player);
}
}
}