Laravel 4 - 不会抛出其中一个视图中未定义的变量


Laravel 4 - does not throw that variable is undefined in one of the views

Made 测试控制器:

class Home1Controller extends BaseController {

public function __construct() {
    ini_set('show_errors', true);
}
public function getTest() {
    $data['subview'] = $this->aaa();
    return View::make('test.bbb', $data);
}
private function aaa() {
    for ($i=0; $i<10; $i++) {
        $data['subviews'][] = $this->ccc();
    }
    return View::make('test.aaa', $data);
}
private function ccc() {
    return View::make('test.ccc');
}

}

和观点:

aaa.blade.php:

<div>
aaa
<p>throws that $a is undefined </p>
{{-- $a --}}
@foreach ($subviews as $subview)
    {{ $subview }}
@endforeach

呸.php呸呸��

<style type="text/css">
 div    {
border: 1px solid;
padding: 1px;
margin: 1px;
}
</style>
<div>
<p>bbb</p>
<p>throws that $a is undefined</p>
{{ $subview }}

{{-- $a --}}

</div>

cc.blade.php:

<div> 
 ccc
 does not throw that $a is undefined
{{-- $a --}}
</div>

现在,当我在 aaa 或 bbb 视图中取消注释变量$a时,会显示标准的 laravel 错误。

但是当我在 ccc 视图中取消评论时 - 不显示错误。它呈现为:

aaa
throws that $a is undefined

我正在另一台计算机上测试相同的技术,并且按预期在所有视图中显示时出错。那为什么我不能上这台电脑呢?我应该在哪里看?

编辑

如果我添加到构造函数

ini_set("display_errors", 1);

然后显示一个错误:

致命错误:方法 Illuminate''View''View::__toString() 不得在第 11 行的/home/darius/repos/dashboard/app/storage/views/3b6a644a21beb63c65a709b559771162 中引发异常

在该视图中,第 11 行在 AAA 视图中:

    <?php echo $subview; ?>

顺便说一句,我现在正在另一个 - linux 服务器上进行测试,它是一样的。

发现如果我打电话

return View::make('test.ccc')->render();

然后它抛出该变量是未定义的。

通过这篇文章,我发现。

http://forums.laravel.io/viewtopic.php?id=10378

现在我只是不明白为什么它隐藏在文档中如此之深?

例如这里:

http://laravel.com/docs/responses

它的每一个地方都显示视图::制作就足够了。

这里也没有谈论:

http://laravel.com/docs/templates

只有在那里写方法:

http://laravel.com/api/class-Illuminate.View.View.html