如何在 YII2 中将参数从控制器传递到布局
我想将参数从控制器发送到布局(即主.php)。但是我无法在main中获取参数.php
我试过了:
控制器代码:
$this->render('index',array('param' => $paramValue));
这就是我试图在布局中得到它的方式,即。主要.php
-
$this->param
(如 yii 1 中所示) $param
但是我无法在布局中获得参数值。谁能告诉我怎么做?
我想将参数从控制器发送到布局(即主.php)。但是我无法在main中获取参数.php
我试过了:
控制器代码:
$this->render('index',array('param' => $paramValue));
这就是我试图在布局中得到它的方式,即。主要.php
$this->param
(如 yii 1 中所示)$param
但是我无法在布局中获得参数值。谁能告诉我怎么做?
yii\base\View 具有特殊的$params属性。
例如,它用于使用 Gii 在默认生成的 CRUD 代码模板中构建痕迹导航。
您可以在渲染之前按如下方式进行设置:
use Yii;
Yii::$app->view->params['customParam'] = 'customValue';
在控制器内部,您可以按如下方式进行设置:
$this->view->params['customParam'] = 'customValue';
然后它将在视图(包括主布局)中可用:
/* @var $this yii\web\View */
echo $this->params['customParam'];
您也可以在官方指南中找到它。
我想建议您针对此问题采取一些步骤。
检查参数,如果存在,则使用它。
//in controller method
$this->render("view-file-name",["paramName" => "some parameter"]);
//in view file for eg: index.php
//i'm passing paremeter sent form controller's action to view params.
$this->params["paramFromViewFile"] = $paramName; //here $paramName is the parameter we sent from controller's method
//access parameter sent from view file
if($this->params && !empty($this->params["paramFromViewFile"]))
{
echo $this->params["paramFromViewFile"];
}