未定义的变量&字符串转换异常

时间:2013-12-30 15:30:13

标签: php laravel-4 blade

我试图使用Blade模板引擎并获得此错误

我的控制器

<?php

class HomeController extends BaseController
{ 
    protected $layout = 'home';

    public function index()
    {        
        $data = array(
            'heading' => 'Hello Laravel (from Home)',
            'body' => 'This is awesome, from the HomeController'
        );

        $this->layout->content = View::make('home',compact('data'));
    }
}

查看 - [尝试1]

...
    @section('message')
        {{$data}}
    @stop

错误

ErrorException
Array to string conversion

查看 - [尝试2]

....
    @section('message')
        <?php print_r($data); ?>
    @stop

错误

ErrorException
Undefined variable: data

1 个答案:

答案 0 :(得分:0)

问题在于您如何定义布局和视图。

您将控制器的布局定义为“home”,然后将视图“home”渲染为布局的内容,这基本上意味着您将再次呈现与内容相同的文件。您应该有一个单独的文件用于布局。您可以拥有View::make('index', $data)并创建一个名为index.blade.php的文件。有关详细信息,请参阅here