Php Codeigniter控制器中的动态全局变量

Php Codeigniter控制器中的动态全局变量,php,codeigniter,Php,Codeigniter,我正在尝试在我的网站上放置一个动态标题,所以它就在这里 class Survey extends MY_Controller { public $my_title; public function __construct(){ parent::__construct(); $this->load->model('Survey_model'); $this->my_title = ""; //setting to blank }

我正在尝试在我的网站上放置一个动态标题,所以它就在这里

class Survey extends MY_Controller {

   public $my_title;

   public function __construct(){
     parent::__construct();
     $this->load->model('Survey_model');
     $this->my_title = ""; //setting to blank
   }

   public function survey_form(){
     $this->data['title']    = $this->my_title; //display the title
     $this->middle       = 'Survey_view';
     $this->layout();
   }

   public function validate_stub($survey_code){
     $data          = $this->Survey_model->get_questions($survey_code);
     $this->my_title    = $this->Survey_model->get_quest_title($survey_code); //getting from database title 

     $this->session->set_userdata('stub_data', $data);
     redirect('Survey/survey_form');
   }
}

首先触发的是validate_stub函数,然后我想将get_quest_title的返回传递给全局变量$my_title,然后将其传递给survey_form函数。在本例中,$this->my_title为空,如何从db传递标题,然后将其放入全局变量,然后传递到视图。谢谢

我不明白您为什么在
验证存根()中使用
重定向
。您可以直接调用
survey_form
函数代码如下:

class Survey extends MY_Controller {

   public $my_title;

   public function __construct(){
     parent::__construct();
     $this->load->model('Survey_model');
     $this->my_title = ""; //setting to blank
   }

   public function survey_form(){
     $grab_title = $this->session->userdata('my_title');
     if(isset($grab_title) && $grab_title != "") {
         $this->data['title']    = $grab_title;
     }else {
         //do some checks here and add something default
         $this->data['title']    = $this->my_title;             
     }
     $this->middle       = 'Survey_view';
     $this->layout();
   }

   public function validate_stub($survey_code){
     $data          = $this->Survey_model->get_questions($survey_code);
     $this->my_title    = $this->Survey_model->get_quest_title($survey_code); //getting from database title 

     $this->session->set_userdata('stub_data', $data);
     $this->session->set_userdata('my_title', $this->my_title);
     redirect('Survey/survey_form');
   }
}

谢谢顺便说一句,因为如果我把$this->survey_form()放在表单中,链接将是/validate_stub,我希望它是/survey_form那么validate_stub()有什么用呢?您可以将代码从validate_stub()复制/粘贴到survey_form()并使用该函数。或者您应该考虑使用FuffSuffic,我有一个长的验证逻辑,这就是为什么我将验证分离,以便不改变您的逻辑,您可以通过会话传递标题。检查编辑。哦,我的上帝,我不认为天哪,谢谢你,伙计!