0

我在尝试将多个 dataProviders 传递给 Yii 中的 ClistView 时遇到了一些麻烦。正确的做法是什么?

我试过了:

    $this->widget('zii.widgets.CListView', array(


'dataProvider'=>array($dataProvider, $dataProvider2),

我也看过这个合并两个 PHP 对象的最佳方法是什么?. 不确定最好的方法是否是尝试使用纯 PHP 来完成,或者框架是否有此选项,而我只是错过了它们。

感谢任何帮助。

谢谢

强尼

4

2 回答 2

2

最简单的事情是两个模型之间是否存在关系。然后你可以在你的 itemView 中输出它:

echo $data->relationItem; 

// Or if it is a HAS_MANY relation
foreach ($data->relationItems as $i)
    echo $i->something;

不是你想要的?

另一种解决方案可能是遍历您的模型,将您想要的东西挑选到一个新数组中,然后使用CArrayDataProvider将其提供给您的 ClistView。

于 2013-08-27T02:03:31.120 回答
1

在这种情况下,我开发了自己的 CListView:

class MyClistView extends CListView{

}

CListView 需要 dataProvider,因此请传递包含您的 dataproviders 的 ArrayDataProvider 并迭代它们,不要忘记实现您的渲染逻辑。

PS:别忘了看看CBaseListView

于 2013-08-27T08:31:41.337 回答