Templates 在Laravel 4中共享视图和数据

Templates 在Laravel 4中共享视图和数据,templates,views,laravel,laravel-4,blade,Templates,Views,Laravel,Laravel 4,Blade,我正在使用Laravel4构建一个简单的日记应用程序,我想创建一个侧栏和标题,在所有管理视图中共享。标题将要求显示用户数据,而侧栏将包含指向应用程序各个部分的链接 我真的不知道该怎么做,我看过视图生成器,但我不确定如何正确地实现它们,或者这是否就是它们的目的 如果你能为我提供任何关于这个或任何其他资源的清晰文档,那将是非常棒的。谢谢 Gareth我已经通过视图生成器实现了我想做的事情,但我想知道您对它的看法,以及它是最佳实践还是一个好的解决方案 //我的routes.php文件中的View::c

我正在使用Laravel4构建一个简单的日记应用程序,我想创建一个侧栏和标题,在所有管理视图中共享。标题将要求显示用户数据,而侧栏将包含指向应用程序各个部分的链接

我真的不知道该怎么做,我看过视图生成器,但我不确定如何正确地实现它们,或者这是否就是它们的目的

如果你能为我提供任何关于这个或任何其他资源的清晰文档,那将是非常棒的。谢谢


Gareth

我已经通过视图生成器实现了我想做的事情,但我想知道您对它的看法,以及它是最佳实践还是一个好的解决方案

//我的routes.php文件中的View::composer for layouts.admin
视图::编写器('layouts.admin',函数($View)
{
$user=AdminController::get();
$view->with('user',$user);
});
//AdminController中的公共静态方法get()
公共静态函数get()
{
$userGreeting=Auth::user()->greetings()->orderBy(DB::raw('RAND()')->first();
$user=新用户;
$user->first\u name=Auth::user()->first\u name;
$user->greeting=$userGreeting->greeting;
返回$user;
}
//layouts.admin视图
{{Html::link('logout','logout')}
嘿{{$user->first_name}

{{$user->问候语}


我已经通过视图生成器成功地完成了我想做的事情,但我想知道您对此的想法,以及它是最佳实践还是一个好的解决方案

//我的routes.php文件中的View::composer for layouts.admin
视图::编写器('layouts.admin',函数($View)
{
$user=AdminController::get();
$view->with('user',$user);
});
//AdminController中的公共静态方法get()
公共静态函数get()
{
$userGreeting=Auth::user()->greetings()->orderBy(DB::raw('RAND()')->first();
$user=新用户;
$user->first\u name=Auth::user()->first\u name;
$user->greeting=$userGreeting->greeting;
返回$user;
}
//layouts.admin视图
{{Html::link('logout','logout')}
嘿{{$user->first_name}

{{$user->问候语}


对于没有那么复杂的站点,我只想使用blade创建一个简单的模板

//file: template.blade.php
@include('includes/header')
@include('includes/sidebar')
@include($view)
@include('includes/footer')
显然,我将把
header.blade.php
侧栏.blade.php
footer.blade.php
文件放在
视图/包含文件夹中

然后,在控制器中,它就像

$view = 'exampleView';
return View::make('template')->with('view', $view);

此外,传递到模板视图中的所有变量也将可用于该模板中调用的每个include

对于没有那么复杂的站点,我只想使用blade创建一个简单的模板

//file: template.blade.php
@include('includes/header')
@include('includes/sidebar')
@include($view)
@include('includes/footer')
显然,我将把
header.blade.php
侧栏.blade.php
footer.blade.php
文件放在
视图/包含文件夹中

然后,在控制器中,它就像

$view = 'exampleView';
return View::make('template')->with('view', $view);
此外,传递到模板视图中的所有变量也将可用于该模板中调用的每个include