/** 
  * 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);
     }
 }