Yii 2 - 如何将变量传递给主视图文件到渲染器?
Yii 2 - how to pass a variable to main view file to the renderer?
我基本上什么都没试过,因为我在我检查的文档中没有找到任何东西。
我基本上想传递一个变量,即。 $balance
因此它将在 layouts/main.php
文件的范围内可用:
我在哪里可以这样说:
$balance = MyClass::myMethod();
return $this->render('main', [
'balance' => $balance,
]);
谢谢。希望大家理解。
假设:您正在使用高级模板并且目录结构类似于 。
该过程围绕 \yii\base\View->beginContent() 开始,它 returns 以下内容:.
默认情况下 ./frontend/views/layouts/base.php 被称为 'viewFile';依次加载 _clear,后者又加载 main,最后显示 $content.
的内容
为了覆盖 $content 的默认值,必须覆盖 *View->beginContent() 的默认行为。
尝试创建定义为 ./frontend/controllers/Controller->beginContent($viewFile, $params = []) {/...*/} 的方法看看是否适合你。
您可以先将该变量发送到查看文件,例如,
$balance = MyClass::myMethod();
return $this->render('myview', [
'balance' => $balance,
]);
因此您可以在 views/controller_name/myview.php
中创建文件 myview.php
在那里你可以直接访问变量$balance
。现在您可以使用 myview.php
.
中的 params
将此变量传递给 main.php(如果它是您的布局文件)
$this->params['balance'] = $balance;
并通过$this->params['balance']
访问main.php
中的变量。
// layouts/main.php
var_dump($this->params);
// action method
$this->view->params['balance'] = $balance;
也看看http://www.yiiframework.com/doc-2.0/guide-structure-views.html#using-blocks
我基本上什么都没试过,因为我在我检查的文档中没有找到任何东西。
我基本上想传递一个变量,即。 $balance
因此它将在 layouts/main.php
文件的范围内可用:
我在哪里可以这样说:
$balance = MyClass::myMethod();
return $this->render('main', [
'balance' => $balance,
]);
谢谢。希望大家理解。
假设:您正在使用高级模板并且目录结构类似于
该过程围绕 \yii\base\View->beginContent() 开始,它 returns 以下内容:
默认情况下 ./frontend/views/layouts/base.php 被称为 'viewFile';依次加载 _clear,后者又加载 main,最后显示 $content.
的内容为了覆盖 $content 的默认值,必须覆盖 *View->beginContent() 的默认行为。
尝试创建定义为 ./frontend/controllers/Controller->beginContent($viewFile, $params = []) {/...*/} 的方法看看是否适合你。
您可以先将该变量发送到查看文件,例如,
$balance = MyClass::myMethod();
return $this->render('myview', [
'balance' => $balance,
]);
因此您可以在 views/controller_name/myview.php
在那里你可以直接访问变量$balance
。现在您可以使用 myview.php
.
params
将此变量传递给 main.php(如果它是您的布局文件)
$this->params['balance'] = $balance;
并通过$this->params['balance']
访问main.php
中的变量。
// layouts/main.php
var_dump($this->params);
// action method
$this->view->params['balance'] = $balance;
也看看http://www.yiiframework.com/doc-2.0/guide-structure-views.html#using-blocks