我有一些数据数组,我需要控制器中的所有方法。
$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();
问题是我不能DRY这个。所以我在每个方法中都粘贴了这个$ data数组。
我有一个视图页面。所以当我加载这个视图时,我必须这样做 每次/方法加载$ data数组。控制器时这很恶心 方法太多了。
我想要1个像构造函数这样的代码。我怎么能这样做。
答案 0 :(得分:0)
你可以使用这个特征。 在特征中定义方法,然后在控制器中使用特征。
答案 1 :(得分:0)
您可以在helper class
中创建一个function
并将上面的代码放入其中,但请确保您无法使用model
访问$this
所以,您需要创建CI instance
而不是访问它。在controller
construct
方法中,您只需要调用此函数,但不要忘记加载helper class
并将其存储在变量中并将其与{{1}一起传递}}
答案 2 :(得分:0)
只需在控制器类中创建私有数据变量即可。比在构造函数中设置数据。现在,您可以使用任何方法访问数据。
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();
}
// ...
}