【问题标题】:Codeigniter - how to pass variable without load viewCodeigniter - 如何在没有加载视图的情况下传递变量
【发布时间】:2013-05-06 03:38:51
【问题描述】:

我的控制器中有这些数据来加载视图:

private $data //defined before my construct function

function index(){
    $this->data['myvar'] = 'test'
    $this->load->view('homeview', $this->data);
}

但问题是我想从homeview 访问另一个视图中的$this->myvar 变量,例如maincontentview(它包含在homeview 中)。我的问题是如何在不加载变量的情况下将变量传递给maincontentview (like $this->load->view('maincontentview', $this->data))。

【问题讨论】:

  • $this->myvar,只能通过$myvar访问。
  • 您可以使用 session 来访问数据.....只需将数据存储在 session 中,然后从特定视图中的 session 中检索它

标签: codeigniter variables


【解决方案1】:

试试这个

在控制器中

function index(){
  $data['myvar'] = 'test'
  $this->load->view('homeview', $data);
}

如果您正在加载 maincontentview,请在您的 homeview 中使用以下代码

<?php
  $MyData['myvar'] = $myvar;
  $this->load->view('maincontentview', $MyData);
?>

现在您也可以在 maincontentview 中使用 $myvar

【讨论】:

    【解决方案2】:

    如果您使用$this-&gt;load-&gt;view() 加载maincontentview 视图,则主视图已经可用的任何变量也将对该视图可用。您只需像在homeview 中一样通过$myvar 访问它——无需重复数据数组。

    【讨论】:

      【解决方案3】:

      $myvar 声明为全局变量,并在整个代码中访问全局变量。

      【讨论】:

      • 全局变量很少是合适的解决方案。
      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2014-10-24
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多