簡體   English   中英

如何在控制器中為所有方法存儲$ data數組

[英]how can I store $data array for all methods in a controller

我有一些控制器中所有方法都需要的數據數組。

          $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數組上方加載。 當控制器方法過多時,這令人惡心。

我想要這樣的一段代碼,如構造函數。 我怎樣才能做到這一點。

您可以為此使用特征。 在特征中定義您的方法,然后在控制器中使用該特征。

您可以創建一個helper classhelper 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();
    }
    // ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM