制作测试控制器:
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
bbb.blade.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>
ccc.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 服务器上进行测试,它是一样的。