2011-05-14 4 views
3

부트 스트랩에서 웹 페이지의 제목을 설정하고 싶습니다. 나는 Bootstrap.php에서 같은 것을 할 :Zend : Bootstrap.php에서보기를 얻는 방법?

Fatal error: Call to a member function getView() on a non-object in /var/www/student/application/Bootstrap.php on line 7 

가 어떻게보기를 얻을 수 있습니다 :

protected function _initViewHelpers() {   
    $view = Zend_Layout::getMvcInstance()->getView(); 
    $view->headTitle('My Title'); 
} 

나는 다음과 같은 오류는 무엇입니까? 나는 또한 this을 시도했다.

답변

2

:

Bootstrap.php

protected function _initViewHelpers() { 
    $view = new Zend_View(); 
    $view->headTitle('Main Title')->setSeparator(' - '); 
} 

에서 어떤 보기 /로 .phtml

<?php 
    $this->headTitle()->prepend('Page Title'); 
    echo $this->headTitle(); 
?> 
에서
1

당신은 시도 할 수 있습니다 : 당신은 가능성이 시작되기 전에 인스턴스에 액세스하려고

protected function _initViewHelpers() {   
    $bootstrap = $this->getBootstrap(); 
    $view = $bootstrap->getResource('view'); 
    $view->headTitle('My Title'); 
} 
+0

치명적 오류 : /var/www/student/application/Bootstrap.php 9 행의 객체가 아닌 getResource() 멤버 함수를 호출하십시오. – Student

+0

ah가 내 작업 코드의 행을 놓쳤습니다. – opHASnoNAME

+0

'치명적인 오류 : '잘못된 메소드 "getBootstrap"' – Student

5

.

protected function _initViewHelpers() { 
    $view = Zend_Layout::startMvc()->getView(); 
    $view->headTitle('My Title'); 
} 

그러나, startMVC는 MVC의 인스턴스로 설정됩니다 문자열이나 배열이나 Zend_Config 인스턴스와 레이아웃 폴더의 경로가 될 수 어느 쪽 $options 인수를 전달할 수 있습니다보십시오. ZF는 일반적으로 application.ini의 나중 단계에서이를 자동으로 전달합니다. 나는 그 응용 프로그램이 어떻게 전달되는지 알지 못합니다.

더 나은 선택은 Resource Plugin 또는 Controller Plugin 일 것입니다. 구현 예는 링크 된 페이지를 참조하고 source code for Zend_Layout을 참조하십시오.

+0

치명적인 오류 : 경로 '/ var/www/student/application/views'에 'script'layout.phtml '메시지가 포함 된'Zend_View_Exception '예외가 잡히지 않았습니다. /scripts/:/var/www/student/application/modules/institute/views/scripts/:./views/scripts/) '/var/www/student/library/Zend/View/Abstract.php:980 Stack trace : # 0 /var/www/student/library/Zend/View/Abstract.php(876) : Zend_View_Abstract -> _ script ('layout.phtml') # 1/var/www/student/library/Zend/Layout. php (796) : – Student

+0

@ 학습 자료 이것은 작동 중임을 의미합니다. 그것은 기본 경로에서 레이아웃 템플릿을 찾으려고하지만 외관상으로는 거기에 하나를 넣지 않았습니다. – Gordon

+2

위에서 설명한대로 원래 설명서의 것을 사용하십시오. – BRampersad

6

@ArneRie는 가깝지만 구문이 잘못되었습니다. 이것은에서입니다 quickstart : 그것은 지금 나를 위해 노력하고 있습니다

protected function _initDoctype() 
{ 
    $this->bootstrap('view'); 
    $view = $this->getResource('view'); 
    $view->doctype('XHTML1_STRICT'); 
    // but what you really want is 
    $view->headTitle('My title'); 
} 
+0

죄송합니다 :'치명적 오류 : /var/www/student/library/Zend/Application/Bootstrap/BootstrapAbstract.php:692에서 '리소스 일치'보기가 '찾을 수 없음'메시지와 함께 'Zend_Application_Bootstrap_Exception'예외가 발견되었습니다. 스택 추적 : ' – Student

+0

I 내가 누락 된 것을 모른다. – Student

+1

찾았습니다. 내 대답을 찾아라. – Student

1
$this->title = "Edit album"; 
$this->headTitle($this->title); 
관련 문제