我基本上没有尝试过,因为我在我检查过的文档中没有找到任何内容。
我基本上想要传递一个变量ie。 layouts/main.php
所以它可以在$balance = MyClass::myMethod();
return $this->render('main', [
'balance' => $balance,
]);
file:
我在哪里可以说:
factorial(0, 1).
factorial(N, F) :-
N > 0,
Prev is N -1,
factorial(Prev, R),
F is R * N.
谢谢。希望有人理解。
答案 0 :(得分:2)
该过程从\ yii \ base \ View-> beginContent()开始,它返回以下内容:。
默认情况下./frontend/views/layouts/base.php被称为'viewFile';然后加载_clear然后加载main,最后显示$ content的内容。
为了覆盖$ content的默认值,必须覆盖* View-> beginContent()的默认行为。
尝试创建定义为./frontend/controllers/Controller->beginContent($viewFile, $ params = []){/...*/}的方法,看看是否有效对你而言。
答案 1 :(得分:2)
// 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
答案 2 :(得分:0)
您可以先将该变量发送到查看文件,例如
$balance = MyClass::myMethod();
return $this->render('myview', [
'balance' => $balance,
]);
因此,您可以在views/controller_name/myview.php
您可以直接访问变量$balance
。现在,您可以使用params
中的myview.php
将此变量传递给main.php(如果它是您的布局文件)。
$this->params['balance'] = $balance;
并通过main.php
访问$this->params['balance']
中的变量。