在MVC主页

时间:2016-03-16 11:37:28

标签: php model-view-controller

假设我想显示最新文章的标题。 对于特定的Views,我们使用控制器来处理它。但对于页眉或页脚等常见页面, 如何从数据库(在MVC规则中)显示数据(最新文章)? 注意:我使用php

请检查我的方法:

app class:

<?php
class app{
    public static function appLoader($app){
        include 'apps/'.$app.'/'.$app.'.class.php';
        new $app;
    }
}

test.class.php:

class test extends app{
    function __CONSTRUCT(){
        return 'Hello World';
    }
}

footer.php

<footer>
<?php echo app::appLoader("test") // returns 'Hello World' ?>
</footer>

1 个答案:

答案 0 :(得分:0)

注意:这是w.r.t .Net MVC

如果您正在关注MVC模式 - 那么就有一个“部分视图”的概念 - 就像用户控件一样,它可以放在主页面中。

部分视图也是一个html页面,可能只是div,没有html body head等因为它将在主html页面内呈现

您可能需要使用PHP验证部分视图的语法。 MVC的概念保持不变。

有多种方法可以显示部分视图。

一种流行的方式是通过其动作方法调用部分视图的方式 - 最终将显示结果(部分视图)。

Action方法将返回“_Footer”部分视图 - 您可以在其中放置显示数据的HTML代码(最新文章)。

部分视图必须从文章列表中绑定。在.Net中通常称为 强类型绑定 - 这是什么都不是但将视图(HTML页面)映射到特定类以显示该类中的数据。

以下示例可供参考(在.Net中):

为页脚(_Footer)创建局部视图,并使用Action Method(RenderAction - .Net)调用它。此操作方法可以从数据库中获取数据并显示在部分视图(_Footer)

对action方法的调用类似于视图(html页面):

    @{ Html.RenderAction("Index", "Footer", new { Area = "Common", id}); }

控制器和动作方法如:

    public class FooterController : Controller
    {
        public ActionResult Index(int id)
        {
            var vm = new FooterViewModel
            {
                Id = id
            };

            return this.PartialView("_Footer", vm);
        }
    }