public function associates(string $alias_join, string $alias_left, string $entity_left, string $alias_right, string $entity_right): ManyToMany {
    return $this->many_to_many[] = new ManyToMany($alias_join, $alias_left, $this->full_name, $entity_left, $alias_right, $entity_right);
  }
public function associates(string $alias_join, string $alias_left, string $entity_left, string $alias_right, string $entity_right): ManyToMany {
    return $this->many_to_many[] = new ManyToMany($alias_join, $alias_left, $this->full_name, $entity_left, $alias_right, $entity_right);
  }
public function associates ( string $ alias_join , string $ alias_left , string $ entity_left , string $ alias_right , string $ entity_right ) : ManyToMany { return $ this -> many_to_many [ ] = new ManyToMany ( $ alias_join , $ alias_left , $ this -> full_name , $ entity_left , $ alias_right , $ entity_right ) ; }
Adds a `has many through` relationship to the left and right `Entity`s through this `Entity`

@param  string  $alias_join    The name of the join column
@param  string  $alias_left    The name of the left column
@param  string  $entity_left   The fully-qualified class name of the left `Entity`
@param  string  $alias_right   The name of the right column
@param  string  $entity_right  The fully-qualified class name of the right `Entity`

@return  ManyToMany  Options for the relation
Adds a has many through relationship to the left and right Entity s through this Entity