我正在从事 CI 项目,我被困在某个地方。我尝试从函数设置一个全局变量值,并从其他函数访问此值。这是我的代码。
class Example extends CI_Controller {
public $gData = "";
public function userinfo() {
//Here i fetch user infomration from database table
$userName = "userName";
$this->gData = $userName;
}
public function getuserinfo() {
echo $this->gData;
}
}
userinfo
是我的实际页面,它在浏览器中打开,并从用户表中获取用户数据。在我看来,我有按钮单击按钮,我正在调用 ajax,它调用控制器的getuserinfo
方法,它应该返回我在该方法中设置的用户名userinfo
但unfortunetly
它不起作用。任何意志plz
引导我犯错的地方。(我不允许使用会话(
试试这个: 您必须首先在全局变量中设置用户名:
class Example extends CI_Controller {
public $gData = "";
public function userinfo() {
//Here i fetch user infomration from database table
$userName = "userName";
$this->gData = $userName;
}
public function getuserinfo() {
$this->userinfo();
echo $this->gData;
}
}
或者您可以使用构造函数:我不熟悉 CI
class Example extends CI_Controller {
public $gData = "";
Public function __construct() {
parent::__construct();
$this->userinfo();
}
public function userinfo() {
//Here i fetch user infomration from database table
$userName = "userName";
$this->gData = $userName;
}
public function getuserinfo() {
echo $this->gData;
}
}
编辑答案:根据评论,如果您不想使用会话,解决方案可以像这样:
1.使用用户信息的查询创建视图。
2.使用该视图创建一个模型并编写逻辑。 我认为这可能会对您有所帮助.它不会减慢您的结果。
您可以按照 Amitesh 所述在构造函数中定义变量,也可以将userinfo()
方法更改为仅返回数据,以便getuserinfo()
方法可以使用它。例如:
class Example extends CI_Controller {
public function userinfo() {
//Here i fetch user infomration from database table
$userName = "userName";
return $userName;
}
public function getuserinfo() {
// get the data
$username = $this->userinfo();
echo $username;
}
}
通过调用$this->userinfo()
您将运行该方法,并且返回值将可用于进行调用的任何函数(在同一控制器内(