1

我对 mvc 和框架非常陌生,到目前为止,我遇到了很多挑战,真正困扰我的是从视图中调用控制器或任何其他方式来处理将在每个页面中重复的代码

假设我有一个站点,并且用户现在访问我的站点时可以登录或不登录如果用户已登录我想在我的标题视图中说“欢迎用户名”

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

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

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

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

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

4

1 回答 1

1

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

如果您有“重复性”任务 - 应该将它们放入库或助手中,然后从那里运行。

在那个库中 - 你有一个像

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

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

MVC 指南

在 CI 中创建库

于 2012-05-16T16:00:20.763 回答