【问题标题】:How to pass variables from controller to view in CodeIgniter 3如何将变量从控制器传递到 CodeIgniter 3 中的视图
【发布时间】:2020-02-17 23:18:33
【问题描述】:

我正在尝试将一些变量传递给 CodeIgniter 3 中的 header.php。

我不确定,但可能有错误,因为 header.php 不是直接在 pages 文件夹中并且没有通过?

层次结构:

home.php --> \www\pages\home.php

header.php --> \www\pages\templates\home.php

我知道您可以通过加载视图轻松传递变量:

Pages.php:
$data['title'] = "dashboard";

$this->load->view('templates/header', $data);
$this->load->view('pages/home', $data);
$this->load->view('templates/footer');
home.php:
<?php print_r($title); ?> //WORKS
header.php:
<?php print_r($title); ?> //UNDEFINIED VARIABLE: title

【问题讨论】:

  • 如果你的层次结构是正确的,它应该是`$this->load->view('pages/templates/your_viewfile', $data);`
  • 实际上每个视图都有模板。所以它是视图/模板/。

标签: php codeigniter parameter-passing


【解决方案1】:

将所有视图放在 www\Project_folder\application\views 路径中。然后你可以很容易地传递变量。

$data['title'] = "dashboard";

$this->load->view('header', $data);
$this->load->view('home');
$this->load->view('footer');

无需将 $data 变量传递给标题和主页视图。您只能将其传递给标题。

【讨论】:

  • 谢谢,我只需要给第一个视图 $data 数组。之后加载的任何视图也将获取变量。
  • 不用等待。它在第一次刷新后工作。在不更改代码的第二次刷新后,它将不再起作用。
  • 我再次得到“未定义的变量标题”。但它有时会起作用。我猜这是解决方案,但我的代码中发生了一些奇怪的事情。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
  • 1970-01-01
相关资源
最近更新 更多