1. 程式人生 > >Yii給前端模板的賦值方式

Yii給前端模板的賦值方式

Yii這套框架整體來說非常靈活,靈活到蛋疼的感覺,整合smarty都對不起框架的設計者,需要在前端模板使用PHP生成大部分元件(導致的結果是沒必要招前端了,直接程式設計師上吧)。

而我們在smarty中習慣使用

$this->assign('name', $var);

這種分步給前端模板賦值的方式同樣不適用,因為Yii的賦值是結合在開啟模板的方法裡面的

$this->render('view',$params);

但有一種折中的方法是在基類定義一個屬性來當預設的賦值變數,而我們需要賦值的陣列都當做它的陣列內容。

private $_params;

publicfunction assign($key,$val){
    $this->_params[$key]  = $val;
 }

publicfunction render($view,$data=null,$return=false)
{
   if(!empty($this->_params)){
       $data =  $data ===null?  $this->_params :CMap::mergeArray($this->_params,$data)  ;
  }
   return parent::render($view, $data , $return);
}