Sulu\Component\Rest\ListBuilder\Doctrine\DoctrineListBuilder::getNecessaryJoins PHP Метод

getNecessaryJoins() защищенный Метод

Function returns all necessary joins for filtering result.
protected getNecessaryJoins ( string[] $necessaryEntityNames ) : Sulu\Component\Rest\ListBuilder\Doctrine\FieldDescriptor\DoctrineFieldDescriptorInterface[]
$necessaryEntityNames string[]
Результат Sulu\Component\Rest\ListBuilder\Doctrine\FieldDescriptor\DoctrineFieldDescriptorInterface[]
    protected function getNecessaryJoins($necessaryEntityNames)
    {
        $addJoins = [];
        // iterate through all field descriptors to find necessary joins
        foreach ($this->getAllFields() as $key => $field) {
            // if field is in any conditional clause -> add join
            if (($field instanceof DoctrineFieldDescriptor || $field instanceof DoctrineJoinDescriptor) && array_search($field->getEntityName(), $necessaryEntityNames) !== false && $field->getEntityName() !== $this->entityName) {
                $addJoins = array_merge($addJoins, $field->getJoins());
            } else {
                // include inner joins
                foreach ($field->getJoins() as $entityName => $join) {
                    if ($join->getJoinMethod() !== DoctrineJoinDescriptor::JOIN_METHOD_INNER && array_search($entityName, $necessaryEntityNames) === false) {
                        break;
                    }
                    $addJoins = array_merge($addJoins, [$entityName => $join]);
                }
            }
        }
        return $addJoins;
    }