我正在开发我的web应用程序。我有这段代码:
<?php
if($_SESSION['add'] == 1)
echo '<input type="button" name="add" id="add" value="Add" onclick="add()" >';
if($_SESSION['edit'] == 1)
echo '<input type="button" name="edit" id="edit" value="Edit" onclick="edit()">';
?>
基本上,当用户登录时,我设置会话变量,指示用户是否被授权进行更改和添加记录。因此,当他们到达主页时,我使用这段代码来决定是否显示添加和编辑按钮。
这段代码是否打破了逻辑/表示分离的规则?如果是这样,我该如何实现分离?
我没有使用任何web框架
虽然View中的条件非常好,但View不应该尝试自己从任何来源获取任何数据。这不是它的角色,它应该只处理控制器(或呈现器,取决于你的应用程序架构)提供给它的数据。你的视图不应该不知道背后的逻辑,为什么和当在edit
和add
模式之间切换。它只需要知道在排序时如何做。在你的情况下,控制器应该检查$_SESSION
并决定什么模式,添加或编辑你的视图应该显示,并将该决定传递给你的视图(即action_mode
= edit|add
)执行。
PS:我建议养成习惯,总是把代码块(甚至是一行代码)放在{
, }
括号中。