Code Duplication    Length = 23-23 lines in 2 locations

system/Inji/Model.php 2 locations

@@ 991-1013 (lines=23) @@
988
            $query->distinct = $options['distinct'];
989
        }
990
991
        foreach (static::$needJoin as $rel) {
992
            $relations = static::relations();
993
            foreach ($query->join as $item) {
994
                if ($item[0] === $relations[$rel]['model']::table() && $item[3] === '') {
995
                    continue 2;
996
                }
997
            }
998
            if (isset($relations[$rel])) {
999
                $type = empty($relations[$rel]['type']) ? 'to' : $relations[$rel]['type'];
1000
                switch ($type) {
1001
                    case 'to':
1002
                        $relCol = $relations[$rel]['col'];
1003
                        static::fixPrefix($relCol);
1004
                        $query->join($relations[$rel]['model']::table(), $relations[$rel]['model']::index() . ' = ' . $relCol);
1005
                        break;
1006
                    case 'one':
1007
                        $col = $relations[$rel]['col'];
1008
                        $relations[$rel]['model']::fixPrefix($col);
1009
                        $query->join($relations[$rel]['model']::table(), static::index() . ' = ' . $col);
1010
                        break;
1011
                }
1012
            }
1013
        }
1014
        static::$needJoin = [];
1015
1016
        foreach (static::$relJoins as $join) {
@@ 1150-1172 (lines=23) @@
1147
            $query->limit($start, $limit);
1148
        }
1149
1150
        foreach (static::$needJoin as $rel) {
1151
            $relations = static::relations();
1152
            foreach ($query->join as $item) {
1153
                if ($item[0] === $relations[$rel]['model']::table() && $item[3] === '') {
1154
                    continue 2;
1155
                }
1156
            }
1157
            if (isset($relations[$rel])) {
1158
                $type = empty($relations[$rel]['type']) ? 'to' : $relations[$rel]['type'];
1159
                switch ($type) {
1160
                    case 'to':
1161
                        $relCol = $relations[$rel]['col'];
1162
                        static::fixPrefix($relCol);
1163
                        $query->join($relations[$rel]['model']::table(), $relations[$rel]['model']::index() . ' = ' . $relCol);
1164
                        break;
1165
                    case 'one':
1166
                        $col = $relations[$rel]['col'];
1167
                        $relations[$rel]['model']::fixPrefix($col);
1168
                        $query->join($relations[$rel]['model']::table(), static::index() . ' = ' . $col);
1169
                        break;
1170
                }
1171
            }
1172
        }
1173
        static::$needJoin = [];
1174
        foreach (static::$relJoins as $join) {
1175
            foreach ($query->join as $item) {