layout.phtml에 몇 가지 변수를 어떻게 추가 할 수 있습니까? 여기에있는 모든 컨트롤러에 추가 할 수 있습니다 : Sending variables to the layout in Zend Framework젠드 프레임 워크 : 레이아웃
하지만 실제로는 좋지 않습니다. 부트 스트랩에 추가하고 싶지 않습니다.
layout.phtml에 몇 가지 변수를 어떻게 추가 할 수 있습니까? 여기에있는 모든 컨트롤러에 추가 할 수 있습니다 : Sending variables to the layout in Zend Framework젠드 프레임 워크 : 레이아웃
하지만 실제로는 좋지 않습니다. 부트 스트랩에 추가하고 싶지 않습니다.
라는 플러그인이 LayoutDefaults : 프런트 컨트롤러에서
class MyLib_Controller_Plugin_LayoutDefaults extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$mvc = Zend_Layout::getMvcInstance();
if (!$mvc) return;
$view = $mvc->getView();
if (!$view) return;
/**
* Set the defaults.
*/
$view->value1 = "default value1";
}
}
:
Zend_Controller_Front::getInstance()
->registerPlugin(new MyLib_Controller_Plugin_LayoutDefaults());
당신의 layout.phtml에서 :
<?= $this->escape($this->value1) ?>
그리고 마지막으로 컨트롤러에서 필요에 따라 기본값을 다시 정의하십시오.
$this->view->value1 = "new value 1";
컨트롤러에서보기 콘텐츠를 계속 보려고하는 것 같습니다. 나는 또한 컨트롤러에서 뷰 컨텐츠를 유지하려고 노력하기 때문에 가능한 한 언제든지 뷰 컨텐츠를 제 관점에 배치하려고합니다. 예를 들어
, 내가이 자리, 제목에 대한 하나의 주요 내용에 대한 또 다른있을 수 있습니다 layout.phtml에 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $this->escape($this->placeholder('titleContent')) ?></title>
</head>
<body>
<div id="maincontent">
<?php echo $this->layout()->content ?>
</div>
</body>
다음 자체 I을 볼 index.phtml에를 나는이 방법을 이 같은 내용의 두 조각을 넣어 : 당신이 당신의 컨트롤러에 영향을주지 원하는
이<?php $this->placeholder('titleContent')->Set('My Index Page Title') ?>
<p>Index page content here</p>
당신은 많은 자리를 추가 할 수 있습니다. 이 메서드를 사용하면 대부분의 콘텐츠가 모델에서 제공되지 않는 한 컨트롤러에서 벗어나지 않습니다.
Zend_Controller_Action
을 확장 할 새 추상 컨트롤러를 만듭니다. >My_Controller_Action extends Zend_Controller_Action
그리고 거기 당신은 당신이 원하는대로 init()
에 넣어해야 -
IndexController extends My_Controller_Action
. :)
좋아,이 방법이 효과가 있다고 생각합니다. 시도해 보겠습니다.)! – user199337