我使用Codeigniter來構建一個Web應用程序,我試圖遵循適當的OOP,MVC和Codeigniter約定。有幾件事絕對是逃避我的。以下是對我感到困惑的簡單解釋。我該如何使用Codeigniter將類數據傳遞給我的視圖?
我有一個'公司'表和一個Companies_model。這個模型具有id,name和url等私有變量。該模型有一個名爲load_data($ id)的方法,該方法使用一個id將有關公司的所有數據加載到類變量中。這個$ id來自URL。最後,這個模型具有返回值的公共getter。
我的網站上有我的系統中的每個公司的個人資料頁面。在我的公司控制器中,我以下面的方式加載公司的數據。
$this->load->model('Companies_model', 'Companies_profile');
$this->Companies_profile->load_data($this->uri_company_id);
當我的其他邏輯是在控制器完成,我有以下代碼呈現視圖:
$this->data['Companies_profile'] = $this->Companies_profile;
$this->load->view('profiles/companies_profile_view', $this->data);
我認爲,我渲染數據是這樣的:
<p>This company's name is <?php echo $Company_profile->get_name(); ?>.</p>
所有這些似乎都是多餘的。爲什麼當數據已經在Companies_method的特定實例中可用時,將數據傳遞給視圖?我感到困惑,我做錯了什麼,但我無法弄清楚那是什麼。也許我沒有做錯任何事,但還沒有遇到這種結構的一些原因。總的來說,我的應用程序非常簡單。有人可以闡明如何正確地組織數據並將其傳遞給視圖嗎?爲什麼要傳遞這些數據,而不是僅僅在CI的基類中提供這個$ this?
注意:我在每個頁面上顯示了多個Companies_model實例,因爲我在每個配置文件頁面上都有相關公司的列表。