Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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