Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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