Php 无法从Codeigniter 4中的视图打印公共变量
我在BaseController中声明了一个公共变量,它在控制器中工作正常。但是当我试图从任何视图文件中打印它时。这是行不通的 当我在控制器中声明一个公共变量时,这在视图中也不起作用。但是在控制器中工作Php 无法从Codeigniter 4中的视图打印公共变量,php,codeigniter,frameworks,codeigniter-4,Php,Codeigniter,Frameworks,Codeigniter 4,我在BaseController中声明了一个公共变量,它在控制器中工作正常。但是当我试图从任何视图文件中打印它时。这是行不通的 当我在控制器中声明一个公共变量时,这在视图中也不起作用。但是在控制器中工作 有什么问题?如何解决这个问题?当Codeigniter v3中也有同样的问题时 您需要在视图中发送变量,如下所示: $pageTitle = 'Page title'; $data = array('pageTitle'=> $pageTitle); $this->load
有什么问题?如何解决这个问题?当Codeigniter v3中也有同样的问题时 您需要在视图中发送变量,如下所示:
$pageTitle = 'Page title';
$data = array('pageTitle'=> $pageTitle);
$this->load->view('yourview', $data);
在你看来:
<?php echo $pageTitle ?>
希望这对您有所帮助。您需要在视图中发送变量,如下所示:
$pageTitle = 'Page title';
$data = array('pageTitle'=> $pageTitle);
$this->load->view('yourview', $data);
在你看来:
<?php echo $pageTitle ?>
希望这对你有帮助。是的,我知道。但是我想声明一些固定的变量,它们在每一页上都是必需的。所以我不想在每个控制器上都声明这一点。所以我决定在BaseController中声明它们。因为之前版本的Codeigniter支持这一点。中的core/MY_Controller.phpCI3@ParagDhali您可以声明一个数组,比如$page_data,创建一个构造函数来加载标题等的“页面”全局变量,然后修复。无论如何,您只能在前端控制器中执行此操作。@TimBrownlaw我也尝试过此操作。但不从视图文件工作。这仅在控制器文件中运行。当我在视图中回显$this->时,会打印空值。但CI3是有效的。不知道是什么问题!我想在BaseController中声明的一些变量。因为我不想声明每个控制器。@ParagDhali Well CI 4是一个完全不同的野兽,所以现在你必须遵守规则。我从不知道CI 3可以回显控制器属性,因为我从未尝试过,因为即使在当时也不是这样做的。等你试试sessions和flashdata:)@TimBrownlaw我自己用另一种方式找到了答案。有时每个控制器中都需要一些公共变量。这是一个非常讨厌的方法,在每个控制器中一次又一次地定义这些变量。这就是为什么需要一些公共变量。限制也不是一件有害的事情。这是一个很好的特性。如果需要的话,我可以告诉你我是怎么做到的是的,我知道。但是我想声明一些固定的变量,它们在每一页上都是必需的。所以我不想在每个控制器上都声明这一点。所以我决定在BaseController中声明它们。因为之前版本的Codeigniter支持这一点。中的core/MY_Controller.phpCI3@ParagDhali您可以声明一个数组,比如$page_data,创建一个构造函数来加载标题等的“页面”全局变量,然后修复。无论如何,您只能在前端控制器中执行此操作。@TimBrownlaw我也尝试过此操作。但不从视图文件工作。这仅在控制器文件中运行。当我在视图中回显$this->时,会打印空值。但CI3是有效的。不知道是什么问题!我想在BaseController中声明的一些变量。因为我不想声明每个控制器。@ParagDhali Well CI 4是一个完全不同的野兽,所以现在你必须遵守规则。我从不知道CI 3可以回显控制器属性,因为我从未尝试过,因为即使在当时也不是这样做的。等你试试sessions和flashdata:)@TimBrownlaw我自己用另一种方式找到了答案。有时每个控制器中都需要一些公共变量。这是一个非常讨厌的方法,在每个控制器中一次又一次地定义这些变量。这就是为什么需要一些公共变量。限制也不是一件有害的事情。这是一个很好的特性。如果需要的话,我可以告诉你我是怎么做到的