正确遵循MVC

时间:2014-12-10 16:33:15

标签: php templates

我的index.phtml中包含以下几行代码:

<?php if (!empty($_SESSION)) : ?>
  <p>Welcome back, 
    <a href="logout.php"><?php echo $_SESSION["info"]["users_name"];?></a>
  </p>
<?php endif; ?>

<?php if(empty($_SESSION)) : ?>
  <p>Hello, would you like to 
    <a href="" data-toggle="modal" data-target="#loginModal">sign in</a>
  </p>
<?php endif; ?>

我想知道这应该放在我的index.php中以正确遵循MVC模式吗?如果是这样我该怎么做?

1 个答案:

答案 0 :(得分:0)

在Views中使用全局变量并不好。因此,您应该将案例中的user_name传递给Controller中的视图。

您可以将代码重写为以下内容:

在控制器中:

render('your tpl', ['user_name' => isset($_SESSION['info']) && isset($_SESSION['info']['users_name']) ? $_SESSION['info']['users_name'] : null ]);    

在视图中:

<?php if($user_name) : ?>
    <p>Welcome back, <a href="logout.php"><?= $user_name ?></a></p>
<?php else: ?>
    <p>Hello, would you like to 
    <a href="" data-toggle="modal" data-target="#loginModal">sign in</a></p>
<?php endif; ?>