如何在yii2中将值从控制器传递到布局文件

时间:2016-06-22 14:49:24

标签: yii2

我正在尝试将一个变量值从控制器传递到我的main.php布局文件,但我不断收到错误未定义的变量:contentWrapperBackground。下面是我的代码

controller
public function actionList()
{

   $contentWrapperBackground = "ff4400;";
    $contentBackground = "3c8dbc;";
    return $this->render('list', [

         'contentWrapperBackground' =>$contentWrapperBackground,
         'contentBackground' => $contentBackground,

    ]);
}

并在我的布局文件中

<div class="content-wrapper" style="background-color:#<?=$contentWrapperBackground?>">
    <!-- Content Header (Page header) -->


    <!-- Main content -->
    <section class="content" style="background-color:#<?=$contentBackground?>">

但我总是得到错误未定义的变量:contentWrapperBackground。我正在尝试更改不同页面的背景颜色。对此有任何帮助,我也对另一个关于如何使这项工作的想法感谢

2 个答案:

答案 0 :(得分:2)

不要使用会话!

简单的解决方案:

class Controller extends \yii\web\Controller
{
    $public $contentWrapperBackground;

    $public $contentBackground;
}

class YourController extends Controller
{
    public function actionList()
    {

         $this->contentWrapperBackground = "ff4400;";
         $this->contentBackground = "3c8dbc;";
         return $this->render('list', []);
    }
}

在你的主要版面

<div class="content-wrapper" style="background-color:#<?=Yii::$app->controller->contentWrapperBackground?>">

或其他选项

<div class="content-wrapper" style="background-color:#<?=$this->context->contentWrapperBackground?>">

答案 1 :(得分:0)

您可以在控制器中设置参数

Yii::$app->view->params['paramName'] = 'data';

获取布局中的数据

$this->params['paramName'];