Ejemplo n.º 1
0
 public static function completeEntities(ModelConfig $modelConfig)
 {
     $m2mData = $modelConfig->getManyToManyRelationData();
     if (!empty($m2mData['relationData'])) {
         $groupBy = $m2mData['table'] . "." . $m2mData['idProperty'];
         $select = array($m2mData['table'] . ".*", $groupBy);
         $joins = array();
         foreach ($m2mData['relationData'] as $relationData) {
             $select[] = $relationData['relationTable'] . "." . $relationData['relatedModelId'] . " AS " . $relationData['relatedModelId'];
             $joins[] = array('table' => $relationData['relationTable'], 'key1' => $m2mData['table'] . ".id", 'key2' => $relationData['relationTable'] . "." . $relationData['relationId']);
         }
         $return = static::select($select);
         foreach ($joins as $leftJoin) {
             $return->leftJoin($leftJoin['table'], $leftJoin['key1'], "=", $leftJoin['key2']);
         }
         $return->groupBy($groupBy);
         return $return;
     } else {
         return static::select('*');
     }
 }