未定义的变量:标题,在Laravel中

时间:2014-08-04 09:39:19

标签: php laravel

我定义了我的方法控制器index(),并在html视图中传递了show的参数标题:

class WebController extends BaseController{
    public $layout = 'layout.base';

    /*Index*/
    public function index(){
        $this->layout->title = 'Index Title';
        return View::make('pages.index');
    }
}

但是当我加载页面时返回此错误: enter image description here

在我的'app \ views \ layout \ base.blade.php'中,我有:

<!DOCTYPE html>
<html lang="es">
    <head>
        <title>{{$title}}</title>
        @section('metas')
        @show

        @section('styles')
        @show
    </head>

这是我的route.php:

Route::get('/index',['as' => 'pages.index', 'uses' => 'WebController@index']);

如何解决这个问题? 非常感谢你!

3 个答案:

答案 0 :(得分:2)

尝试这样的事情,你必须在返回View :: make(..)时传递变量。 当你想传递更多变量时,你可以使用compact();功能。

/*Index*/
    public function index(){
        $title = 'Index Title';
        return View::make('pages.index', $title);
    }

使用compact();

的示例
return View::make('pages.index', compact('title','description'));

答案 1 :(得分:2)

尝试将包含数据的数组添加到view::make

return View::make('pages.index', array('title' => 'Title'));

答案 2 :(得分:2)

尝试从

编写调用您的视图
return View::make('pages.index'); 

return View::make('pages.index')->with('title', $this->layout->title);