【问题标题】:Unable to print public variable from Views in Codeigniter 4无法从 Codeigniter 4 中的视图打印公共变量
【发布时间】:2020-08-02 15:39:56
【问题描述】:

我已经在 BaseController 中声明了一个公共变量,它在控制器上运行良好。但是当我试图从任何视图文件中打印它时。这是行不通的。

当我在控制器中声明一个公共变量时,这在视图中也不起作用。但在控制器中工作。

有什么问题?以及如何解决这个问题? 当相同的事情在 Codeigniter v3 中工作时。

【问题讨论】:

    标签: php codeigniter frameworks codeigniter-4


    【解决方案1】:

    您需要像这样在视图中发送变量:

    $pageTitle = 'Page title';   
    $data = array('pageTitle'=> $pageTitle);
    $this->load->view('yourview', $data);
    

    然后在你看来:

    <?php echo $pageTitle ?>
    

    希望这会对你有所帮助。

    【讨论】:

    • 是的,我知道。但我想声明一些每个页面都需要的固定变量。所以我不想在每个控制器上都声明这个。所以我决定在 BaseController 中声明它们。因为以前版本的 Codeigniter 支持这一点。 CI3中的core/MY_Controller.php
    • @ParagDhali 好吧,你可以声明一个像 $page_data 这样的数组,创建一个构造函数来加载标题等的“页面”全局变量并修复。无论如何,您只能在前端控制器中执行此操作。
    • @TimBrownlaw 我也试过这个。但不能从视图文件中工作。这仅在控制器文件中运行。当我在视图中 echo $this-> 然后打印空值。但 CI3 有效。不知道是什么问题!我想在 BaseController 中声明的一些变量。因为我不想声明每个控制器。
    • @ParagDhali CI 4 是完全不同的野兽,所以现在你必须遵守规则。我从来不知道 CI 3 可以回显控制器属性,因为我从未尝试过,因为即使在当时也不是这样。等到你尝试会话和 flashdata :)
    • @TimBrownlaw 我自己以另一种方式找到了答案。有时每个控制器都需要一些公共变量。在每个控制器中一次又一次地定义这些变量是一种非常讨厌的方法。这就是为什么需要一些公共公共变量的原因。而且做限制也不是什么坏事。这是一个很好的功能。如果需要,我可以告诉你我是怎么做到的
    猜你喜欢
    • 2019-03-16
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多