我是PHP和Codeigniter的新手。
我正在从我的控制器加载一个视图。然后,该视图中有一个form_open,它指向该控制器中的一个函数。我可以在该函数中使用先前在控制器中设置的变量吗?
例如,控制器的构造函数加载模型。然后,此控制器中的另一个函数调用$this->model->someFunction($id)
并将我的模型的$id
变量设置为$id
。稍后,在我的视图中单击链接后,它将转到控制器中的另一个函数,然后调用$this-model->printID()
。这失败了,因为在我的模型中,$id
未设置。
如何实现链接转到访问我之前修改的同一对象(或模型)的函数?也就是说,$ ID的最终回显返回一个空白字符串 - $ID
没有像我预期的那样设置。
提前感谢您的帮助。
我的控制器:
class Studio extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('studio_model','',TRUE);
}
function view($id)
{
$this->studio_model->setID($id);
$this->load->view('studio_view');
}
function signup(){
$ID = $this->input->post('ID');
$this->studio_model->signup($ID);
}
}
我的模特:
Class studio_model extends CI_Model{
public $ID;
function setID($id) {
$this->ID = $id;
}
function signup($ID){
echo $this->ID;
echo $classID;
}
答案 0 :(得分:0)
我认为我的问题的答案与以下内容有关:ellislab.com/forums/viewthread/185409/#876547不维护PHP实例,因此每个新调用实例化新类,控制器等。结果,全局变量不再如果您已离开控制器然后稍后再重新输入,则设置。