2013-08-24 1 views
0

저는 새로운 Zend2입니다. 어떻게하면 내 navigation.phtml에 일부 var 또는 배열을 전달할 수 있습니까, 나는 레이아웃으로 성공했습니다. 나는 내 NavController에서 그것을 제어하려고한다.Navigationcontroller에서 navigation.phtml까지의 변수

내가 무엇을 놓치고 있느냐?!

있는 navigationController :

namespace Front\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 
use Zend\View\Model\ViewModel; 

class IndexController extends AbstractActionController { 

function __construct() { 
     return $this->layout()->myVariable = 'navigation Test'; 
    } 
} 

navigation.phtml :

<?php print_r($this->layout()->myVariable); ?> 

module.config

'controllers' => array(
    'invokables' => array(
     'Front\Controller\Index' => 'Front\Controller\IndexController', 
     'Front\Controller\Pages' => 'Front\Controller\PagesController', 
     'Front\Controller\Navigation' => 'Front\Controller\NavigationController' 
    ), 
), 


    'template_map' => array(
     'layout/layout'  => __DIR__ . '/../view/layout/layout.phtml', 
     'meta'   => __DIR__ . '/../view/layout/meta.phtml', 
     'navigation'   => __DIR__ . '/../view/layout/navigation.phtml', 

답변

0

당신은 당신의 컨트롤러가 다소 잘못 사용합니다. 내가 기초를 가르 칠 의향이 아니에요로서, 단순히 the official manual를 참조뿐만 아니라 Zend\View QuickStart

모두 모두 같은 섹션 Forms and Actions를 참조하십시오, 가장 큰 제안은 내가 당신을 제공 할 수 있습니다 : 당신이 있다면 프레임 워크를 사용하지 않는 문서를 통해 직접 작업하지 않으려 고합니다 ...

0

먼저 생성자에서 아무것도 반환하지 마십시오.

var var1 =<?php echo $this->variable1; ?>; 
var var2 =<?php echo $this->variable2; ?>; 

또는 : 다음, 당신은 navigation.phtml하는 기본 경로를 가정하면, 컨트롤러에서 함수를 정의

public function indexAction { 

    $foo = 'hello'; 
    $bar = 'mum'; 

    return new ViewModel(array(
    'variable1' => $foo, 
    'variable2' => $bar)); 
} 

그런 다음 당신은이 같은 자바 스크립트 바르로 변수 1과 변수 2를 사용할 수 있습니다 html로 직접 값을 사용할 수 있습니다.

<label><?php echo $this->variable2; ?></label> 
관련 문제