mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Fix #18472: Fix initializing db component configuration
This commit is contained in:
		@ -88,9 +88,7 @@ class ActiveDataProvider extends BaseDataProvider
 | 
				
			|||||||
    public function init()
 | 
					    public function init()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        parent::init();
 | 
					        parent::init();
 | 
				
			||||||
        if ($this->db !== null) {
 | 
					        $this->db = Instance::ensure($this->db === null ? 'db' : $this->db, Connection::className());
 | 
				
			||||||
            $this->db = Instance::ensure($this->db, Connection::className());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -8,6 +8,7 @@
 | 
				
			|||||||
namespace yiiunit\framework\data;
 | 
					namespace yiiunit\framework\data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use yii\data\ActiveDataProvider;
 | 
					use yii\data\ActiveDataProvider;
 | 
				
			||||||
 | 
					use yii\db\Connection;
 | 
				
			||||||
use yii\db\Query;
 | 
					use yii\db\Query;
 | 
				
			||||||
use yiiunit\TestCase;
 | 
					use yiiunit\TestCase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -21,6 +22,7 @@ class ActiveDataProviderCloningTest extends TestCase
 | 
				
			|||||||
        $queryFirst = new Query();
 | 
					        $queryFirst = new Query();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $dataProviderFirst = new ActiveDataProvider([
 | 
					        $dataProviderFirst = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => new Connection(),
 | 
				
			||||||
            'query' => $queryFirst
 | 
					            'query' => $queryFirst
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -35,6 +35,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
    public function testActiveQuery()
 | 
					    public function testActiveQuery()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => Order::find()->orderBy('id'),
 | 
					            'query' => Order::find()->orderBy('id'),
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
        $orders = $provider->getModels();
 | 
					        $orders = $provider->getModels();
 | 
				
			||||||
@ -45,6 +46,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        $this->assertEquals([1, 2, 3], $provider->getKeys());
 | 
					        $this->assertEquals([1, 2, 3], $provider->getKeys());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => Order::find(),
 | 
					            'query' => Order::find(),
 | 
				
			||||||
            'pagination' => [
 | 
					            'pagination' => [
 | 
				
			||||||
                'pageSize' => 2,
 | 
					                'pageSize' => 2,
 | 
				
			||||||
@ -59,6 +61,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        /* @var $customer Customer */
 | 
					        /* @var $customer Customer */
 | 
				
			||||||
        $customer = Customer::findOne(2);
 | 
					        $customer = Customer::findOne(2);
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $customer->getOrders(),
 | 
					            'query' => $customer->getOrders(),
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
        $orders = $provider->getModels();
 | 
					        $orders = $provider->getModels();
 | 
				
			||||||
@ -68,6 +71,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        $this->assertEquals([2, 3], $provider->getKeys());
 | 
					        $this->assertEquals([2, 3], $provider->getKeys());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $customer->getOrders(),
 | 
					            'query' => $customer->getOrders(),
 | 
				
			||||||
            'pagination' => [
 | 
					            'pagination' => [
 | 
				
			||||||
                'pageSize' => 1,
 | 
					                'pageSize' => 1,
 | 
				
			||||||
@ -82,6 +86,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        /* @var $order Order */
 | 
					        /* @var $order Order */
 | 
				
			||||||
        $order = Order::findOne(2);
 | 
					        $order = Order::findOne(2);
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $order->getItems(),
 | 
					            'query' => $order->getItems(),
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
        $items = $provider->getModels();
 | 
					        $items = $provider->getModels();
 | 
				
			||||||
@ -92,6 +97,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        $this->assertEquals([3, 4, 5], $provider->getKeys());
 | 
					        $this->assertEquals([3, 4, 5], $provider->getKeys());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $order->getItems(),
 | 
					            'query' => $order->getItems(),
 | 
				
			||||||
            'pagination' => [
 | 
					            'pagination' => [
 | 
				
			||||||
                'pageSize' => 2,
 | 
					                'pageSize' => 2,
 | 
				
			||||||
@ -106,6 +112,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        /* @var $order Order */
 | 
					        /* @var $order Order */
 | 
				
			||||||
        $order = Order::findOne(1);
 | 
					        $order = Order::findOne(1);
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $order->getBooks(),
 | 
					            'query' => $order->getBooks(),
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
        $items = $provider->getModels();
 | 
					        $items = $provider->getModels();
 | 
				
			||||||
@ -114,6 +121,7 @@ abstract class ActiveDataProviderTest extends DatabaseTestCase
 | 
				
			|||||||
        $this->assertInstanceOf(Item::className(), $items[1]);
 | 
					        $this->assertInstanceOf(Item::className(), $items[1]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $provider = new ActiveDataProvider([
 | 
					        $provider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => $order->getBooks(),
 | 
					            'query' => $order->getBooks(),
 | 
				
			||||||
            'pagination' => [
 | 
					            'pagination' => [
 | 
				
			||||||
                'pageSize' => 1,
 | 
					                'pageSize' => 1,
 | 
				
			||||||
 | 
				
			|||||||
@ -34,6 +34,7 @@ class LinkSorterTest extends DatabaseTestCase
 | 
				
			|||||||
    public function testLabelsSimple()
 | 
					    public function testLabelsSimple()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $dataProvider = new ActiveDataProvider([
 | 
					        $dataProvider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => Order::find(),
 | 
					            'query' => Order::find(),
 | 
				
			||||||
            'models' => [new Order()],
 | 
					            'models' => [new Order()],
 | 
				
			||||||
            'totalCount' => 1,
 | 
					            'totalCount' => 1,
 | 
				
			||||||
@ -58,6 +59,7 @@ class LinkSorterTest extends DatabaseTestCase
 | 
				
			|||||||
    public function testLabelsExplicit()
 | 
					    public function testLabelsExplicit()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $dataProvider = new ActiveDataProvider([
 | 
					        $dataProvider = new ActiveDataProvider([
 | 
				
			||||||
 | 
					            'db' => $this->getConnection(),
 | 
				
			||||||
            'query' => Order::find(),
 | 
					            'query' => Order::find(),
 | 
				
			||||||
            'models' => [new Order()],
 | 
					            'models' => [new Order()],
 | 
				
			||||||
            'totalCount' => 1,
 | 
					            'totalCount' => 1,
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user