【发布时间】:2013-08-30 15:08:40
【问题描述】:
我想在 Yii 应用程序中搜索多个模型。搜索结果显示在 CList 视图中。需要在列表视图中使用 dataprovider。那么如何在 Clist 视图中使用多个数据提供程序?
【问题讨论】:
-
仅使用由单个查询提供支持的 dataProvider 和连接。显示“Yii 关系”。
标签: yii
我想在 Yii 应用程序中搜索多个模型。搜索结果显示在 CList 视图中。需要在列表视图中使用 dataprovider。那么如何在 Clist 视图中使用多个数据提供程序?
【问题讨论】:
标签: yii
您不能使用多个数据提供者,而是将结果合并到一个数据提供者中
【讨论】:
这样的东西可以帮助您入门:
public function actionSearch($q) {
// Sanitize input
$q = strtolower(strip_tags($q));
$q = preg_replace('/[^a-z 0-9 _ \- \']/', '', $q);
$model1 = Model1::model()->findAll('title LIKE "%'.$q.'%"');
$model2 = Model2::model()->findAll('title LIKE "%'.$q.'%"');
$rawData = array_merge($model1, $model2);
$dataProvider = new CArrayDataProvider($rawData, array(
'sort'=>array(
'attributes'=>array(
'datePublished DESC', 'title',
),
),
'pagination'=>array(
'pageSize'=>10,
),
));
$this->render('search', array(
'dataProvider' => $dataProvider,
'query' => $q,
));
}
【讨论】: