0


我查找了周围的主题,但我没有看到适合我的案例的内容。
所以,我有一个充满方法的控制器,以及一个加载我在这个特定控制器中常用的模型的构造函数。一切正常。我需要在构造函数中设置一个数组,例如

$data["content"]["something"] = "bla bla";

就这样。所以我将 $data["content"] 传递给视图加载器,我希望能够访问

$something

, 但不是。它将它作为未定义的变量,但为什么呢?当我把它放在特定的方法中时,一切正常,但是当它在构造函数中时,它说未定义。有任何想法吗?谢谢!:)

4

4 回答 4

0

您不能在 View 中访问构造函数变量。您需要将其传递给控制器​​的方法并将其传递给视图。例如,

在构造函数中:

$data["content"]["something"] = "bla bla";

在控制器的方法中:

$data['something'] = $this->$data["content"]["something"];

现在您可以通过$data查看和访问,例如echo $something

于 2013-04-05T08:03:03.607 回答
0

似乎您不了解此问题上的变量范围。而不是创建一个局部变量 $data 尝试使用 $this->data 它将可用于整个对象(控制器)

function __construct() {
    ...
    $this->data['content'] = array('test' => 'test');
    ...
}

然后,您也可以使用变量 $this->data 将其传递给视图,并在执行期间随时附加/修改它。

$this->load->view('path/to/view', $this->data);
于 2013-04-05T08:15:05.813 回答
0
  $data["content"]["something"] = "bla bla";
  $this->load->view('path/to/view', $data);

在视图中检索它

   echo $content["something"];
于 2015-08-21T07:18:17.263 回答
-1

你所要做的:

$data["content"] = "bla bla";
$data["something"] = "bla bla";

$this->load->view('path/to/view', $data);

这样你的视图中就有了所有的数据字符串。

<?php echo $something; ?>

<?php echo $content; ?>

在一个 $data 字符串中传递 2 个变量不是一个好主意。

于 2013-04-05T08:00:28.857 回答