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


handling repeating-time consuming codes by calling controllers from view?

我对 MVC 和框架非常陌生,现在我面临了很多挑战,真正困扰我的是关于从视图调用控制器或任何其他方法来处理将在每页中重复的代码

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

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

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

我想在标题视图中做这样的事情:

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

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

您不会从视图中调用控制器!

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

在该库中 - 您有一个类似

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

然后只需在您的视图中调用"display_log_status()"。

MVC 指南

在 CI 中创建库

相关文章: