通过从视图中调用控制器来处理重复耗时的代码?

时间:2012-05-16 09:26:30

标签: php model-view-controller codeigniter

我对mvc和框架非常新,我遇到了很多挑战,现在真正让我烦恼的是关于从视图调用控制器或任何其他方式处理将在每个页面中重复的代码< / p>

说我有一个网站,当他/她访问我的网站时,可以记录或不记录用户 现在,如果用户已登录,我想在标题视图中说“欢迎用户名”

将从许多不同的控制器调用标题视图 我想正确的方法是检查用户是否登录每个控制器并将该数据传递到标题视图

但更简单的方法是直接在视图中执行此操作并获取控制器身份验证部分

我想在标题视图中执行以下操作:

$this->load->controller('user');
$user = $this->user->is_logged();
if($user)
echo "welcome $user";

有没有办法做到这一点?如果答案是肯定的,这是正确/有效的做法吗? 如果没有,有没有办法减少时间和编码就是这种情况?

1 个答案:

答案 0 :(得分:1)

你不能从视图中调用控制器!

如果您有'重复'任务 - 应将它们放入库或帮助程序,然后从那里运行。

在该库中 - 您有一个像

这样的功能
function display_log_status()
{
     if ($this->user->is_logged())
     {
         return "welcome!";
     }
     else
     {
          return "please log in!";
     }
}

然后在你的视图中调用“display_log_status()”。

MVC Guide

Creating Libraries in CI