/** * Inject a set of related data. * * @param Collection $data * @param string $foreign_key * @param string $local_key * @param string[] $local_columns */ public function injectData($data, $foreign_key, $local_key, $local_columns) { $this->injected_data = $data->keyBy($foreign_key)->toArray(); foreach ($local_columns as $column) { $this->injected_data_pairs[$column] = $local_key; } //todo: something less crude foreach ($this->getRelations() as $relation) { $relation->injectData($data, $foreign_key, $local_key, $local_columns); } }