Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从Codeigniter 4中的视图打印公共变量_Php_Codeigniter_Frameworks_Codeigniter 4 - Fatal编程技术网

Php 无法从Codeigniter 4中的视图打印公共变量

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

我在BaseController中声明了一个公共变量,它在控制器中工作正常。但是当我试图从任何视图文件中打印它时。这是行不通的

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


有什么问题?如何解决这个问题?当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我自己用另一种方式找到了答案。有时每个控制器中都需要一些公共变量。这是一个非常讨厌的方法,在每个控制器中一次又一次地定义这些变量。这就是为什么需要一些公共变量。限制也不是一件有害的事情。这是一个很好的特性。如果需要的话,我可以告诉你我是怎么做到的