在模版里,有一些Symfony變量可以直接使用。通過這些快捷變量可以從Symfony的對象中取得
一些最常用的模版信息:
$sf_context: 完整的環境對象(context object), sfContext類的實例
$sf_request: 請求對象,sfRequest類的實例
$sf_params: 請求的參數
$sf_user: 當前的用戶session對象,sfUser類的實例
$sf_flash: 類似Session 一樣的東西,不過只存儲到下一個頁面,就自動注銷了。
$sf_request 請求對象的實例:
模版中獲得請求的參數(http://www.a.cn/showpage.php?id=1,id就是請求showpage.php的參數)
| <?php echo $sf_request->getParameter(’id’); ?>
| 簡版:
| <?php echo $sf_params->get(’id’); ?>
|
| 在動作(action)里面,相當于如下代碼:
| echo $this->getRequestParameter(’id’)
獲得當前/最初訪問的模塊/動作名稱
<?php
$sf_last_module = $sf_context->getModuleName();
$sf_last_action = $sf_context->getActionName();
$sf_first_module = $sf_context->getActionStack()->getFirstEntry()->getModuleName();
$sf_first_action = $sf_context->getActionStack()->getFirstEntry()->getActionName();
$sf_context->getController()->getPresentationFor(’presentation’, ‘foo’);
?>
撲捉錯誤:
<?php if ($sf_request->hasErrors()): ?>
<h2>Errors: </h2>
<?php foreach ($sf_request->getErrorNames() as $name): ?>
<dl>
<dt><?php echo $name ?></dt>
<dd><?php echo $sf_request->getError($name) ?></dd>
</dl>
<?php endforeach; ?>
<?php elseif ($sf_flash->has(’notice’)): ?>
<h2><?php echo __($sf_flash->get(’notice’))</h2>
<?php endif; ?>