0

我是 MVC 的新手,想知道在哪里放置一段代码的最佳实践是什么,无论是控制器还是视图(如果我不知道的话,甚至是模型)。

当前,应用程序从数据库中检索信息,一列是“类型”。然后根据类型,有一个 switch 语句准备要在视图中显示的 html 标签。

就像是:

    foreach ($data as &$dataPoint)
    {
        foreach ($dataPoint as &$postItem)
        {
            switch ($postItem['type'])
            {
                case "image":
                    $postItem['content'] = "<img src=\.$postItem['content']."\" />";
                    break;
                case "youtube":
                    $postItem['content'] = "<iframe src=\"http://www.youtube.com/embed/".$postItem['content']."?showinfo=0\" frameborder=\"0\"></iframe>";
                    break;
            }
        }
    }

但是我只是不知道它应该去哪里,它应该直接在控制器中,然后再传递给视图吗?还是应该放在视图文件的顶部?

任何对 MVC 理论和设计的见解也将不胜感激:)

4

2 回答 2

3

如果是显示逻辑,它应该在视图中。由于这似乎是显示逻辑,因此视图似乎是最好的地方。

这个答案的解释有点不同:https ://stackoverflow.com/a/2574953/1324019

于 2012-08-17T16:52:00.097 回答
2

是的,在你看来,就像其他人提到的那样。

您确实可以创建一个视图格式帮助文件来处理一些非通用 php 函数

foreach ($data as &$dataPoint)
    {
        foreach ($dataPoint as &$postItem)
        {
            //format_helper.php
            get_content_type($postItem);
        }
    }

format_helper.php

if(!function_exists('get_content_type'){
    function get_content_type(array $postItem){
         switch ($postItem['type'])
            {
                case "image":
                    echo "<img src=\.$postItem['content']."\" />";
                    break;
                case "youtube":
                    echo "<iframe src=\"http://www.youtube.com/embed/".$postItem['content']."?showinfo=0\" frameborder=\"0\"></iframe>";
                    break;
            }
    }
})
于 2012-08-17T18:28:35.877 回答