/** * Event after find. * * @param DataSet $dataset The dataset which found. * * @return void */ public function onAfterFind(&$dataset) { $parentTable = $this->parentTable; foreach ($dataset as $key => $data) { $parentTable->reset(); $parentTable->bind($data); $parentTable->_relation->load(); /** @var AbstractRelationHandler $relation */ foreach ($parentTable->_relation->getRelations() as $relation) { $field = $relation->getField(); ArrayHelper::setValue($data, $field, $parentTable->{$field}); } $dataset[$key] = $data; } }
/** * Method to test setValue * * @covers \Windwalker\Utilities\ArrayHelper::setValue * * @return void */ public function testSetValue() { $data = array('Archer' => 'Unlimited Blade World', 'Saber' => 'Excalibur', 'Lancer' => 'Gáe Bulg', 'Rider' => 'Breaker Gorgon'); $data2 = (object) $data; $newData = ArrayHelper::setValue($data, 'Saber', 'Avalon'); $this->assertEquals('Avalon', $data['Saber']); $this->assertEquals('Avalon', $newData['Saber']); $newData = ArrayHelper::setValue($data, 'Archer', 'Unlimited Blade Works'); $this->assertEquals('Unlimited Blade Works', $data['Archer']); $this->assertEquals('Unlimited Blade Works', $newData['Archer']); $newData = ArrayHelper::setValue($data, 'Berserker', 'Gold Hand'); $this->assertEquals('Gold Hand', $data['Berserker']); $this->assertEquals('Gold Hand', $newData['Berserker']); $newData2 = ArrayHelper::setValue($data2, 'Saber', 'Avalon'); $this->assertEquals('Avalon', $data2->Saber); $this->assertEquals('Avalon', $newData2->Saber); $newData2 = ArrayHelper::setValue($data2, 'Archer', 'Unlimited Blade Works'); $this->assertEquals('Unlimited Blade Works', $data2->Archer); $this->assertEquals('Unlimited Blade Works', $newData2->Archer); $newData2 = ArrayHelper::setValue($data2, 'Berserker', 'Gold Hand'); $this->assertEquals('Gold Hand', $data2->Berserker); $this->assertEquals('Gold Hand', $newData2->Berserker); }