public function testFindIndexByAsArray() { parent::testFindIndexByAsArray(); // indexBy + asArray $products = Product::find()->asArray()->indexBy('int')->all(); $this->assertEquals(3, count($products)); $this->assertArrayHasKey('id', $products['123']); $this->assertArrayHasKey('name', $products['123']); $this->assertArrayHasKey('dynamic_columns', $products['123']); $this->assertArrayHasKey('id', $products['456']); $this->assertArrayHasKey('name', $products['456']); $this->assertArrayHasKey('dynamic_columns', $products['456']); $this->assertArrayHasKey('id', $products['792']); $this->assertArrayHasKey('name', $products['792']); $this->assertArrayHasKey('dynamic_columns', $products['792']); // indexBy + asArray + not existed nested column $products = Product::find()->asArray()->indexBy('children.str')->all(); $this->assertEquals(3, count($products)); $this->assertArrayHasKey('id', $products['value1']); $this->assertArrayHasKey('name', $products['value1']); $this->assertArrayHasKey('dynamic_columns', $products['value1']); // column missing - pk should be used $this->assertArrayHasKey('id', $products['']); $this->assertArrayHasKey('name', $products['']); $this->assertArrayHasKey('dynamic_columns', $products['']); $this->assertArrayHasKey('id', $products['value3']); $this->assertArrayHasKey('name', $products['value3']); $this->assertArrayHasKey('dynamic_columns', $products['value3']); }