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);
}


你可能感兴趣的:(Yii2.0学习)