我应该在视图,控制器或模型中加粗文本吗?(Codeigniter,并非特定于它)

Nyx*_*nyx 0 php model-view-controller codeigniter

让我们参考Yelp上的" 排序依据 "部分:

我有3个anchor()函数生成3个链接.当选择"排序依据"选项之一时,我想删除超链接/锚点()并将其加粗以显示它被选中,就像在上面的页面上一样.

现在我正在考虑对$ arr执行uri_to_assoc(),因为所选的选项将在url中,如controller/function/sort_by/best_reviews/..,然后基于什么是键(best_reviews)或元素(sort_by) ,在视图中使用以下代码

<?php
$arr = uri_to_assoc(3);

if($arr['sort_by'] == 'best_reviews') {
    echo "<strong>Best Reviews</strong>";
} else {
    anchor('controller/function/sort_by/best_reviews', 'Best Reviews');
]
?>
Run Code Online (Sandbox Code Playgroud)

现在我相信MVC的想法是在视图中保留一些PHP代码(逻辑代码?).在这种情况下,您是将上面的代码放在视图中,还是在控制器/模型中使用该逻辑然后传递最终代码以在数组中显示(echo或anchor())并在视图中回显数组?.

.

迷你问题(PHP)

如果在url中不存在/ sort_by/variable的情况下未定义$ arr ['sort_by'],则语句if($ arr ['sort_by'] =='best_reviews')将给出错误.您是否将所有上述代码嵌套在if(isset($ arr ['sort_by'])){}中?

小智 5

您正在修改演示文稿,因此您必须在视图中执行此操作.它与任何业务逻辑无关.您可以在视图中使用代码,但仅用于演示; 代码数量没有限制,只是为了它的目的.