Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1092-1106 (lines=15) @@
1089
     *
1090
     * @return \Pulsar\Relation\Relation
1091
     */
1092
    public function hasOne($model, $foreignKey = '', $localKey = '')
1093
    {
1094
        // the default local key would look like `user_id`
1095
        // for a model named User
1096
        if (!$foreignKey) {
1097
            $inflector = Inflector::get();
1098
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1099
        }
1100
1101
        if (!$localKey) {
1102
            $localKey = self::DEFAULT_ID_PROPERTY;
1103
        }
1104
1105
        return new HasOne($model, $foreignKey, $localKey, $this);
1106
    }
1107
1108
    /**
1109
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1117-1131 (lines=15) @@
1114
     *
1115
     * @return \Pulsar\Relation\Relation
1116
     */
1117
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1118
    {
1119
        if (!$foreignKey) {
1120
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1121
        }
1122
1123
        // the default local key would look like `user_id`
1124
        // for a model named User
1125
        if (!$localKey) {
1126
            $inflector = Inflector::get();
1127
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1128
        }
1129
1130
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1131
    }
1132
1133
    /**
1134
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1142-1156 (lines=15) @@
1139
     *
1140
     * @return \Pulsar\Relation\Relation
1141
     */
1142
    public function hasMany($model, $foreignKey = '', $localKey = '')
1143
    {
1144
        // the default local key would look like `user_id`
1145
        // for a model named User
1146
        if (!$foreignKey) {
1147
            $inflector = Inflector::get();
1148
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1149
        }
1150
1151
        if (!$localKey) {
1152
            $localKey = self::DEFAULT_ID_PROPERTY;
1153
        }
1154
1155
        return new HasMany($model, $foreignKey, $localKey, $this);
1156
    }
1157
1158
    /**
1159
     * Creates the child side of a Many-To-Many relationship.
@@ 1167-1181 (lines=15) @@
1164
     *
1165
     * @return \Pulsar\Relation\Relation
1166
     */
1167
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1168
    {
1169
        if (!$foreignKey) {
1170
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1171
        }
1172
1173
        // the default local key would look like `user_id`
1174
        // for a model named User
1175
        if (!$localKey) {
1176
            $inflector = Inflector::get();
1177
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1178
        }
1179
1180
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1181
    }
1182
1183
    /**
1184
     * Loads a given relationship (if not already) and returns