BoyLee 2011-03-15 14:06:34 4477次浏览 4条回复 0 0 0

写了一段自己郁闷的代码。。。。

//controller
public function actionView($id)
{
  $this->render('view',array(
    'model'=>$this->loadModel($id)->with('versions'),
  ));
}


//view
$this->renderPartial('/version/_view',array('data'=>$model->versions));  //这样写报错
$this->renderPartial('/version/_view',array('data'=>$model->versions[0])); //这样写可以读出一条
foreach ($model->versions as $version) {   //可以都读出来,但是翻页什么都没有。
  $this->renderPartial('/version/_view',array('data'=>$version));
}

我想问的是 ->versions 这种 lazy loading 模式读出来的难道不是AR?不可以直接用到dataprovicer里面?

  • 回复于 2011-03-15 14:13 举报

    首先,你对CActiveDataprovider的使用方法理解不正确!
    没看懂你是什么意思?哪里来的dataprovicer?

  • 回复于 2011-03-15 14:15 举报

    告诉你个方法,这样是可以读出来的:
    view/version/view.php文件代码如下:

    $this->renderPartial('/version/_view',array('data'=>$model)); 
    

    view/version/_view.php代码如下:

    foreach ($data->versions as $version) { 
            echo $version->你的字段;
    }
    
  • 回复于 2011-03-15 14:23 举报

    view 里面是这样

    $this->widget('zii.widgets.CListView', array(
      'dataProvider'=>$versions,
      'itemView'=>'/version/_view',
    ));
    
  • 回复于 2011-03-15 14:23 举报

    嗯,不错!{:3_48:}

您需要登录后才可以回复。登录 | 立即注册