【问题标题】:What exactly does this "$this -> session -> userdata("datiPreventivo");" into a CodeIgniter controller class?这个“$this -> session -> userdata("datiPreventivo");”到底是做什么的?进入 CodeIgniter 控制器类?
【发布时间】:2016-07-27 10:18:12
【问题描述】:

我是一名 Java 开发人员(我经常使用 Spring MVC 在 Java 中开发 MVC Web 应用程序),对 PHP 的了解很少,我必须从事一个使用 CodeIgniter 2.1.3的 PHP 项目>.

所以我对这个控制器方法的工作原理有以下疑问:

所以我有这门课:

class garanzieValoreFlex extends CI_Controller {

    ..................................................... 
    ..................................................... 
    ..................................................... 

   public function index() {

        $this->load->model('Direct');
        $flagDeroga = "true" ;

        $this->session->userdata("flagDeroga");

        $data = $this->session->userdata("datiPreventivo");
        $this->load->model('GaranzieValoreFlexModel');

        $data = $this->session->userdata("datiPreventivo");
        $this->load->model('GaranzieValoreFlexModel');

        $this->load->view('garanziavalore/index_bootstrap',$data);
    }

}

我知道 garanzieValoreFlex 控制器类的 index() 方法处理对 URL 的 HTTP 请求:http://MYURL/garanzieValoreFlex 并显示/views/garanzievalore/index_bootstrap.php 页面。

它工作正常。唯一让我无法理解的是这段代码行到底是做什么的:

$data = $this -> session -> userdata("datiPreventivo");

你能帮我具体做什么吗?我认为它正在将一些东西放入 HttpSession 或类似的东西中,但我对此完全不确定,我无法理解逻辑。

【问题讨论】:

标签: php codeigniter codeigniter-2


【解决方案1】:

session 是一个 Codeigniter (CI) 库(类),它允许数据在来自浏览器的多个页面调用中保持不变。在您使用“本机”的 CI 版本中,未使用 PHP 会话功能。但是 CI 的 session 类确实模仿了 PHP 的会话,因为数据存储在 PHP 关联 array 中。

该类有许多不同的方法来存储和检索用户定义的数据。函数userdata("index_to_data") 是主要的类方法之一。它用于检索已存储在session 类中的数据。

传递给userdata() 的参数是session 类数组$userdata 中的值的键。因此,$this->session->userdata("datiPreventivo"); 返回存储在$userdata["datiPreventivo"] 中的值。如果密钥(在本例中为“datiPreventivo”)不存在,则$this->session->userdata("datiPreventivo") 返回FALSE

在您正在使用的代码中的某处,您会发现会话中存储数据的行。这行代码可能看起来像这样。

$newdata = array("datiPreventivo" => $something_value);
$this->session->set_userdata($newdata);

在您的代码中搜索“$this->session->set_userdata”可能有助于了解为将来的页面加载而保存的确切内容。

重要的是要知道 CI 的 session 类在 > 3.0 版本中完全重写,因此 current documentation 可能对您没有太大帮助。您需要找到您正在使用的版本的文档,以了解有关 session 库的更多信息。我相信您的版本的下载中包含文档,可以在 here 找到。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2020-12-06
    • 2012-03-30
    • 2014-01-29
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多