【问题标题】:Yii data provider with clist view带有列表视图的 Yii 数据提供程序
【发布时间】:2013-08-30 15:08:40
【问题描述】:

我想在 Yii 应用程序中搜索多个模型。搜索结果显示在 CList 视图中。需要在列表视图中使用 dataprovider。那么如何在 Clist 视图中使用多个数据提供程序?

【问题讨论】:

标签: yii


【解决方案1】:

您不能使用多个数据提供者,而是将结果合并到一个数据提供者中

【讨论】:

  • 这种情况有什么解决办法?
【解决方案2】:

这样的东西可以帮助您入门:

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

【讨论】:

  • 什么时候可以在视图文件中显示数据?如果两个模型有不同的字段?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 2017-07-28
相关资源
最近更新 更多