在使用ZF時,如果在layout要引入css時,常常會遇到路徑出錯,或者想要用同一個layout但卻要引入不同的css
要克服這個問題就要先在Controller端先處理
Zend_View也支援View Helper。View Helper能協助我們快速地對樣版上的元素做處理
以BaseUrl為例,BaseUrl可以幫助我們取得根目錄的路逕
首先要先在application/config/application.ini加入路徑
resources.frontController.baseUrl = "/public"
使用方法(輸出根目錄路逕)
<?php //輸出根目錄路徑 echo $this->view->baseUrl(); //另外也可以直接在根目錄後面串上路徑 echo $this->view->baseUrl("/css/test.css"); ?>
實際使用範例:
FooController
<?php class FooController extends Zend_Controller_Action { public function indexAction() { $this->view->css = $this->view->baseUrl("/htdocs/css/test.css"); } } ?>
layout.phtml
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>ZF TEST</title> <link type="text/css" rel="stylesheet" href="<?php echo $this->css; ?>" media="screen"> </head> <body> <div id="hd"><h1>Header</h1></div> <!-- $this->layout()->content就是把view script的所有輸出 --> <div id="bd"><?php echo $this->layout()->content; ?></div> <div id="ft"><small>Footer</small></div> </body> </html>