Yii中render和renderPartial的区别

  <?php

  publicfunction render($view,$data=null,$return=false)

  {

  if($this->beforeRender($view))

  {

  $output=$this->renderPartial($view,$data,true);

  if(($layoutFile=$this->getLayoutFile($this->layout))!==false)

  $output=$this->renderFile($layoutFile,array('content'=>$output),true);

  $this->afterRender($view,$output);

  $output=$this->processOutput($output);

  if($return)

  return $output;

  else

  echo $output;

  }

  }

  publicfunction renderPartial($view,$data=null,$return=false,$processOutput=false)

  {

  if(($viewFile=$this->getViewFile($view))!==false)

  {

  $output=$this->renderFile($viewFile,$data,true);

  if($processOutput)

  $output=$this->processOutput($output);

  if($return)

  return $output;

  else

  echo $output;

  }

  else

  thrownewCException(Yii::t('yii','{controller} cannot find the requested view "{view}".',

  array('{controller}'=>get_class($this),'{view}'=>$view)));

  }

  publicfunction processOutput($output)

  {

  Yii::app()->getClientScript()->render($output);

  // if using page caching, we should delay dynamic output replacement

  if($this->_dynamicOutput!==null&& $this->isCachingStackEmpty())

  {

  $output=$this->processDynamicOutput($output);

  $this->_dynamicOutput=null;

  }

  if($this->_pageStates===null)

  $this->_pageStates=$this->loadPageStates();

  if(!empty($this->_pageStates))

  $this->savePageStates($this->_pageStates,$output);

  return $output;

  }