簡體   English   中英

PHP MVC在同一頁面中加載多個控制器模型和視圖

[英]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.

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