flaviovs/yii2-composite-dataprovider

Yii2 的组合数据提供程序

1.0.0-beta2 2024-01-30 23:45 UTC

This package is auto-updated.

Last update: 2024-08-30 01:20:14 UTC


README

组合数据提供程序(CDP)是yii\data\DataProviderInterface的一个实现,它允许你将多个标准 Yii2 数据提供程序组合在一起,就像它们是一个一样。

CDP 负责对源数据提供程序进行适当的分页,因此你可以对它们使用任何组合的分页(或无分页)-- CDP 将始终使用组合分页配置(如果有)进行分页。

安装

composer require flaviovs/yii2-composite-dataprovider

使用

$cdp = new \fv\yii\data\CompositeDataProvider([
    'dataProviders' => [
	
		// A \yii\data\DataProviderInterface instance.
		$data_provider1,
		
		// Object configuration is also supported.
		[
			'class' => \yii\data\ActiveDataProvider::class,
			'query' => $my_model->find();
		],
	],
]);

CDP 也接受一个 pagination 属性,其工作方式与常规 Yii2 数据提供程序相同。

此外,你可以使用 addDataProvider($value) 向 CDP 添加新的数据提供程序。

重要

  • CDP 不能进行排序。当然,源数据提供程序可以正常排序。

  • CDP 返回的模型和键直接来自源数据提供程序。这意味着你的数据提供程序消费者(例如,GridView 列配置)必须准备好处理不同类型的模型,以防源数据提供程序返回不同的模型。

问题

访问 http://github.com/flaviovs/yii2-composite-dataprovider