【问题标题】:Yii - Undefined variable error when rendering viewYii - 渲染视图时出现未定义变量错误
【发布时间】:2013-08-11 04:14:23
【问题描述】:

这是我的第一篇文章。

我是 Yii 框架的新手。

我现在在渲染视图时遇到问题。 渲染控制器时出现未定义变量错误。

我不明白为什么我得到一个未定义的变量错误,尽管变量得到错误是用 if 语句包围的。

下面的代码是我简化了我实际工作的代码。

请帮帮我! 我想知道我收到未定义变量错误的原因,也想知道如何解决这个问题。

提前非常感谢!!!

+++ 控制器 +++

class CategoryController extends Controller
{

    public function actionIndex()
    {

        $flag = false;

            if($flag){

                $this->render('index', array('test'=>$flag));

            }


        //This causes "Undefined variable:test" Error.
        $this->render('index');

        //This works fine.
        //$this->render('index', array('test'=>$flag));

    }


}

+++ 视图(这是用布局视图渲染的。+++

<?php 
if($test){ 
    echo "$test is false";
}else{
    echo "$test is true";
}
?>

【问题讨论】:

  • 因为if($test) 仍然需要定义一个变量。如果要测试变量是否存在,请使用if(isset($test))
  • 不应该是$this-&gt;test
  • >DCoder 谢谢,它有效!

标签: php yii


【解决方案1】:

事实上,您会收到一个错误,因为尝试在您的视图中访问 $test 而不通过控制器渲染是错误的。

您会一直使用渲染函数传递变量,或者只是检查它是否在您的视图文件中设置为if(isset($test))

干杯!

【讨论】:

  • 但是当你在 doble "" 之间写一个 $variable 时,PHP 会计算这个变量。当你打印时在'else'中: echo "$test is true"; php 显示变量的值。把它放在“$test is true”之间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-25
  • 2013-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多