2013-09-07 2 views
3

을 "비 객체의 속성을 할당하는 시도"나는 내 컨트롤러에서 레이아웃 던지는 Laravel 4에서 레이아웃 폴더에서

signup.blade.php라는 레이아웃을 가지고, 나는 그것에 레이아웃 등을 지정하고있어 그래서 :라는 별도의 폴더에

protected $layout = 'layouts.signup'; 

는 "가입"나는라는 파일이 "signup1.blade.php는"그것은 당신의 전형적인 블레이드 템플릿 물건이 포함되어 있습니다. '콘텐츠'라는 섹션입니다. 내가 가지고있는 코드가 있기 전에

@section('content') 

그리고 마지막에는 @stop이 있습니다.

내 컨트롤러는 다음과 같습니다

public function SignUp() 
{  
    $this->layout->content = View::make('signup.signup1'); 
} 

실망스러운 부분이 다른 레이아웃과 컨트롤러와 함께 작동하는지입니다. 나는 그들이 똑같은지 두 번 확인했는데 이것은 작동하지 않는다. 어떤 제안이라도 대단히 감사하겠습니다. 고맙습니다.

+0

내지 Cn 오류 메시지가 표시를 해결? – fideloper

+0

http://imgur.com/wZIr4WW –

답변

4

따라서 컨트롤러가 BaseController ($ layout이 작동해야 함)를 확장한다고 가정하면 code execution sets$this->layout부터 View::make($this->layout)까지입니다.

$this->layout이보기 개체로 올바르게 설정되지 않는 것으로 나타납니다.

$this->layout이 개체/클래스인지 확인하고, 그렇다면 어떤 클래스인지 확인하십시오. $this->layoutView 개체로 변경되지 않는 것을 알고

public function SignUp() 
{  
    echo gettype($this->layout); 
    echo get_class($this->layout); 
} 

setupLayout() 방법 중 하나 View::make($this->layout)의 결과가 적절한 볼 수 없습니다 아니다, 가능성, 전화 또는 없음을 의미합니다 (아마도 그것은 자동으로 어떤 이유로 실패하는 것).

위 단계를 통해 희망 사항을 알 수 있습니다. 아마도 layouts.signup은 앱이 찾고있는 레이아웃이 아닙니까?

경로가 어떻게 생겼습니까?

+0

좋아, 원인을 알아 냈어. 클래스 이름이 레이아웃 이름과 같으면이 오류가 발생합니다. –

+1

동일한 문제가있어이 솔루션을 보증 할 수 있습니다. BaseController를 확장하지 않고 단순히 Controller 만 확장했지만 오류를 수정 한 후 (즉, BaseController를 확장 한 경우) 작동했습니다. 감사. – racl101

1

변경

class UsersController extends Controller 

class UsersController extends BaseController 

로는 희망을 털어의 저자는이 :-)