2013-04-21 4 views
1

저는 Laravel 4를 사용하여 현재 간단한 다이어리 앱을 만들고 있는데, 모든 관리자보기에서 공유되는 사이드 바 및 헤더를 만들고 싶습니다. 헤더에는 사용자 데이터가 표시되어야하며 사이드 바에는 앱의 다양한 섹션에 대한 링크가 포함됩니다.Laravel 4에서보기 및 데이터 공유

저는 View Composers를 살펴본 방법에 대해 정말로 확신 할 수 없지만 올바르게 구현하는 방법이나 이것이 의도 한 것인지는 확실하지 않습니다.

이 리소스 나 다른 리소스에 대한 명확한 문서를 제공해 주시면 감사하겠습니다. 감사.

가레스

답변

1

나는 내가보기 Composer를 통해 어떻게 원하는 것을 달성하기 위해 관리해야하지만 난 그것에 당신의 생각을 알고 싶어하고 그것이 가장 좋은 방법이나 좋은 해결책으로 간주 될 수 있는지 여부 것이다.

// View::composer for layouts.admin in my routes.php file 
View::composer('layouts.admin', function($view) 
{ 
    $user = AdminController::get(); 

    $view->with('user', $user); 
}); 

// public static method get() in AdminController 
public static function get() 
{ 
    $userGreeting = Auth::user()->greetings()->orderBy(DB::raw('RAND()'))->first(); 

    $user = new User; 
    $user->first_name = Auth::user()->first_name; 
    $user->greeting = $userGreeting->greeting; 

    return $user; 
} 

// layouts.admin view 
{{ Html::link('logout', 'Logout') }} 
<p>Hey {{ $user->first_name }}</p> 
<p>{{ $user->greeting }}</p> 
0

복잡하지 않은 사이트의 경우 블레이드를 사용하여 쉬운 템플릿을 만들고 싶습니다.

//file: template.blade.php 
@include('includes/header') 
@include('includes/sidebar') 
@include($view) 
@include('includes/footer') 

분명히, 나는 views/includes folder에서 header.blade.php, sidebar.blade.phpfooter.blade.php 파일을해야합니다.

그런 다음, 컨트롤러에, 그것은 ... 또한

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

만큼 쉽게, 템플릿보기로 통과하는 모든 변수는 또한 각각의 해당 템플릿에서 호출을 포함 사용할 수있게 될 것입니다.