我是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理论和设计的任何见解也将受到高度赞赏:)
答案 0 :(得分:3)
如果是显示逻辑,它应该进入视图。由于这似乎是显示逻辑,视图似乎是最好的地方。
这个答案解释得有点不同:https://stackoverflow.com/a/2574953/1324019
答案 1 :(得分: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;
}
}
})