![](/img/trans.png)
[英]the right way of using models/controllers/views in a php mvc project
[英]PHP MVC load multiple controllers models and views in same page
我目前正在用PHP設計自己的MVC框架。 我已經閱讀了很多有關MVC框架的文章,並提出了一個由控制器處理模型並呈現視圖的框架,盡管不建議這樣做。
該結構的工作原理如下:bootstrap類根據URL加載適當的控制器,方法和變量。 它還會啟動一個具有一些常規功能的主控制器,主模型和主視圖。 控制器啟動其模型,最后渲染其模板。
問題是我有3個MVC對象。 頂部菜單,搜索欄和表格。 我希望將它們呈現在同一頁面上。 但是由於我讓控制器進行渲染,所以無法在同一網頁中渲染三個不同的部分。 我是否需要某種幫助程序類,如果需要,如何正確地實現它?
網址應為:localhost / MyApp / grid。
每個控制器都包含以下代碼:
$this->view->render(filepath/file.php)
每個模板都包含以下代碼:
echo $this->data
我目前正在用PHP設計自己的MVC框架。
在那里有大錯誤,請相信我-我嘗試過。 結局不好。
我已經閱讀了很多有關MVC框架(..)
更大的錯誤。 框架不實現MVC。 因此,無論您讀什么書,都只是有人試圖將其拋光的糞便作為黃金出售。
(..),然后由控制器處理模型並渲染視圖(..)
Controller不負責渲染模板(因為我不相信您實際上有視圖),並且沒有復數的“模型”。
</rant>
您需要的是合適的模板引擎。 嘗試樹枝 。 讓模板引擎處理共享部分。
有一些不同的概念可以解決這個問題。
在我的一個項目中,我將html拆分為模板,然后視圖根據需要加載每個區域。
例如:
$this->renderTemplate('page.header', $pageHeaderModel);
$this->renderTemplate('page.content.'.$viewKey, $pageContentModel);
$this->renderTemplate('page.footer', $pageFooterModel);
在每個頁面上,內容模型都會更改,而另一個則保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.