/**
* Returns all the joins required for the query.
*
* @return DoctrineJoinDescriptor[]
*/
private function getJoins()
{
$joins = [];
if ($this->sortField != null) {
$joins = array_merge($joins, $this->sortField->getJoins());
}
foreach ($this->fields as $field) {
$joins = array_merge($joins, $field->getJoins());
}
foreach ($this->searchFields as $searchField) {
$joins = array_merge($joins, $searchField->getJoins());
}
foreach ($this->whereFields as $whereField) {
$joins = array_merge($joins, $whereField->getJoins());
}
foreach ($this->whereNotFields as $whereNotField) {
$joins = array_merge($joins, $whereNotField->getJoins());
}
foreach ($this->inFields as $inField) {
$joins = array_merge($joins, $inField->getJoins());
}
return $joins;
}