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