【问题标题】:Should I bold the text in View, Controller or Model? (Codeigniter, not not specific to it)我应该在视图、控制器或模型中加粗文本吗? (Codeigniter,不是特定的)
【发布时间】:2011-05-19 13:33:55
【问题描述】:

让我们参考 Yelp 上的“Sort by”部分:

我有 3 个生成 3 个链接的 anchor() 函数。 When one of the 'sort by' option is selected, I want to remove the hyperlink/anchor() and bold it to show that it is selected just like on the page above.

现在我正在考虑对 $arr 执行 uri_to_assoc(),因为所选选项将在 url 中,例如 controller/function/sort_by/best_reviews/..,然后基于什么是关键 (best_reviews) 或元素(sort_by),在 view

中使用以下代码
<?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');
]
?>

现在我相信 MVC 的想法是在视图中保留少量 php 代码(逻辑代码?)。在这种情况下,您是将上面的代码放在视图中,还是将逻辑放在控制器/模型中,然后传递最终代码以在数组中显示(回显或锚()),然后在视图中回显数组? .

.

小问题 (PHP)

如果在url中不存在/sort_by/variable的情况下没有定义$arr['sort_by'],语句if($arr['sort_by'] == 'best_reviews')会报错.你会将上述所有代码嵌套在 if(isset($arr['sort_by'])){} 中吗?

【问题讨论】:

  • 关于小问题 - 在将 $arr 传递给视图之前,我可能会强制 $arr['sort_by'] 存在(通过将其设置为某个默认值)。
  • $arr['sort_by'] 如果 ..../sort_by/variable..... 存在于 url 中,则从 url 中检索。就像使用查询字符串 ?sort_by=variable 但在 Codeigniter 的情况下,它在 url 中的形式为 /sort_by/variable。使用 isset() 是一种不好的编码方式吗?
  • 不,使用isset() 还不错。但是如果没有指定,你不需要任何默认排序吗?
  • 不需要默认排序。 url 成对转换为元素键和值 /key1/value1/key2/value2

标签: php model-view-controller codeigniter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多