Cakephp 使用 Vendor php 文件中的变量
Cakephp use Variables from Vendor php file
我在 Cakephp 2.X 中导入了一个自写的 PHP 供应商文件,如下所示
查看:XXX.ctp:
App::import('Vendor', 'languages', array('file' => 'variables/toUse.php'));
在这个文件中,我声明了一些这样的变量,以便在视图中使用它们:
toUse.php:
$test = 'Placeholder';
$anotherTest = 'anotherPlaceholder';
但不幸的是,我无法在我的视图中使用该变量:
Notice (8): Undefined variable: test [APP/View/XXX/XXX.ctp, line X]
但是例如 toUse.php 中的 Debugger::dump() 在我的视图中正确显示 XXX.ctp..
所以我的问题是,是否无法使用导入的供应商文件中的变量,还是我做错了什么?
最好在控制器中设置变量。如果这些需要多个控制器访问(如您的评论中所建议),那么您可以在 AppController
的 beforeRender()
回调中执行此操作:-
public function beforeRender() {
$this->set('test', 'Placeholder');
$this->set('anotherTest', 'anotherPlaceholder');
}
然后您可以在视图模板中正常使用它们:-
echo $test;
供应商文件实际上不应该用于设置视图的数据。
在您的 AppController.php 中定义它们,并将它们传递到那里的视图。
您可以在您的文件中为 return 这个变量写一个函数,然后在您的视图中调用这个函数。在你的情况下 toUse file:
function getVariable(){
$var = 1;
return $var;
}
然后在您的视图文件中
App::import('Vendor', 'languages', array('file' => 'variables/toUse.php'));
$x = getVariable();
我在 Cakephp 2.X 中导入了一个自写的 PHP 供应商文件,如下所示
查看:XXX.ctp:
App::import('Vendor', 'languages', array('file' => 'variables/toUse.php'));
在这个文件中,我声明了一些这样的变量,以便在视图中使用它们:
toUse.php:
$test = 'Placeholder';
$anotherTest = 'anotherPlaceholder';
但不幸的是,我无法在我的视图中使用该变量:
Notice (8): Undefined variable: test [APP/View/XXX/XXX.ctp, line X]
但是例如 toUse.php 中的 Debugger::dump() 在我的视图中正确显示 XXX.ctp..
所以我的问题是,是否无法使用导入的供应商文件中的变量,还是我做错了什么?
最好在控制器中设置变量。如果这些需要多个控制器访问(如您的评论中所建议),那么您可以在 AppController
的 beforeRender()
回调中执行此操作:-
public function beforeRender() {
$this->set('test', 'Placeholder');
$this->set('anotherTest', 'anotherPlaceholder');
}
然后您可以在视图模板中正常使用它们:-
echo $test;
供应商文件实际上不应该用于设置视图的数据。
在您的 AppController.php 中定义它们,并将它们传递到那里的视图。
您可以在您的文件中为 return 这个变量写一个函数,然后在您的视图中调用这个函数。在你的情况下 toUse file:
function getVariable(){
$var = 1;
return $var;
}
然后在您的视图文件中
App::import('Vendor', 'languages', array('file' => 'variables/toUse.php'));
$x = getVariable();