【问题标题】:handling repeating-time consuming codes by calling controllers from view?通过从视图中调用控制器来处理重复耗时的代码?
【发布时间】:2023-03-19 22:29:01
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: php model-view-controller codeigniter


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      相关资源
      最近更新 更多