我有一些数据数组,我需要在一个控制器的所有方法。
$data['project_ongoing_res_limit']=$this->admin_model->show_project_ongoing_residential_limit();
$data['project_ongoing_com_limit']=$this->admin_model->show_project_ongoing_commercial_limit();
$data['project_upcoming_res_limit']=$this->admin_model->show_project_upcoming_residential_limit();
$data['project_upcoming_com_limit']=$this->admin_model->show_project_upcoming_commercial_limit();
$data['project_completed_res_limit']=$this->admin_model->show_project_completed_residential_limit();
$data['project_completed_com_limit']=$this->admin_model->show_project_completed_commercial_limit();
问题是我不能干这个。所以我在每个方法中粘贴了这个$data数组。
我有一个查看页面。当我加载这个视图时,我必须每次/方法加载以上$data数组。这太恶心了方法太多了。
我想要一段类似构造函数的代码。
你可以使用trait。在trait中定义方法,然后在控制器中使用该trait。
您可以创建一个helper class
,其中创建一个function
,并将您的上述代码放在其中,但确保您不能使用$this
访问model
,因此,您需要创建CI instance
,然后访问它。之后,在construct
方法中的controller
中,您只需要调用此函数,但不要忘记加载helper class
并将其存储在一个变量中,并将其与view
一起传递。
在控制器类中创建私有数据变量。然后在构造函数中设置数据。现在你可以用任何你想要的方法访问你的数据。
class Pages extends CI_Controller {
// ...
private $data;
// ...
public function __construct() {
parent::_construct();
$this->data = array();
$this->data['project_ongoing_res_limit']=$this->admin_model->show_project_ongoing_residential_limit();
$this->data['project_ongoing_com_limit']=$this->admin_model->show_project_ongoing_commercial_limit();
$this->data['project_upcoming_res_limit']=$this->admin_model->show_project_upcoming_residential_limit();
$this->data['project_upcoming_com_limit']=$this->admin_model->show_project_upcoming_commercial_limit();
$this->data['project_completed_res_limit']=$this->admin_model->show_project_completed_residential_limit();
$this->data['project_completed_com_limit']=$this->admin_model->show_project_completed_commercial_limit();
}
// ...
}