2013-05-11 3 views
1

Laravel 4를 배우려고 노력하고 있으며, 지금까지는 아주 훌륭했습니다. 그러나 블레이드 템플리트는 나에게 비견되는 듯하다. 예를 들어 스마티보다 덜 직관적이다.ArrayAccess를 컨트롤러에서 Laravel 4의보기로 전달

작은 문제가 있습니다. 내가 컨트롤러에서보기로 내 데이터를 밀어보십시오. 나는 이것을한다 :

public function getGame($id, $slug = null) { 
    $game['info'] = Game::find($id); 
    $game['genres'] = Game::find($id)->genres()->get(); 
    $game['dev'] = Game::find($id)->developers()->get(); 

    $this->layout = View::make('user')->with('game',$game); 
} 

꽤 간단하지 않습니까? 현재로서는 내보기는 {{ $game['info']->title }}입니다. 하지만 내 변수가 보이지 않는 것 같습니다 ("Undefined variable : game"을 던짐). 내가 무엇을 할 수 있을지? 해당 배열 형식으로 데이터를 게시 할 수 있습니까 (제가 할 수있는 문서에서 추측했습니다).

답변

1

문제는 코드의 마지막 줄에 있다고 생각합니다. 당신은

return View::make('user')->with('game', $game); 

같은 뷰를 반환하거나 같은 것을 할 중 하나

컨트롤러 보호 $ 레이아웃 = 'my_layout.blade.php'를 만들고 파일 my_layout.blade.php을 만들어 넣어 보기 폴더에. 그것은 당신의 getGame 함수의 끝에서, 그리고

@yield('content') 

같은 것을 쓰기 당신의 user.blade.php을 만들고이

@section('content') 
    .... 
@stop 

마침내 같은 섹션을 만들

$this->layout->content = View::make('user')->with('game', $game); 

집은 당신에게 의미가 있습니다.

, BTW '장르'와 게임 모델에서 '개발자의 관계를 정의하고

$game = Game::with('genres', 'developers')->find($id); 

같은 열망로드를 사용하여보기에이를 통과하지 왜. 그런 다음 $ game-> 장르처럼, $ game-> 제목처럼 장르를 제목에 액세스 -> ... 등

감사합니다, 블라드

관련 문제