Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1083-1097 (lines=15) @@
1080
     *
1081
     * @return \Pulsar\Relation\Relation
1082
     */
1083
    public function hasOne($model, $foreignKey = '', $localKey = '')
1084
    {
1085
        // the default local key would look like `user_id`
1086
        // for a model named User
1087
        if (!$foreignKey) {
1088
            $inflector = Inflector::get();
1089
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1090
        }
1091
1092
        if (!$localKey) {
1093
            $localKey = self::DEFAULT_ID_PROPERTY;
1094
        }
1095
1096
        return new HasOne($model, $foreignKey, $localKey, $this);
1097
    }
1098
1099
    /**
1100
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1108-1122 (lines=15) @@
1105
     *
1106
     * @return \Pulsar\Relation\Relation
1107
     */
1108
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1109
    {
1110
        if (!$foreignKey) {
1111
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1112
        }
1113
1114
        // the default local key would look like `user_id`
1115
        // for a model named User
1116
        if (!$localKey) {
1117
            $inflector = Inflector::get();
1118
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1119
        }
1120
1121
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1122
    }
1123
1124
    /**
1125
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1133-1147 (lines=15) @@
1130
     *
1131
     * @return \Pulsar\Relation\Relation
1132
     */
1133
    public function hasMany($model, $foreignKey = '', $localKey = '')
1134
    {
1135
        // the default local key would look like `user_id`
1136
        // for a model named User
1137
        if (!$foreignKey) {
1138
            $inflector = Inflector::get();
1139
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1140
        }
1141
1142
        if (!$localKey) {
1143
            $localKey = self::DEFAULT_ID_PROPERTY;
1144
        }
1145
1146
        return new HasMany($model, $foreignKey, $localKey, $this);
1147
    }
1148
1149
    /**
1150
     * Creates the child side of a Many-To-Many relationship.
@@ 1158-1172 (lines=15) @@
1155
     *
1156
     * @return \Pulsar\Relation\Relation
1157
     */
1158
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1159
    {
1160
        if (!$foreignKey) {
1161
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1162
        }
1163
1164
        // the default local key would look like `user_id`
1165
        // for a model named User
1166
        if (!$localKey) {
1167
            $inflector = Inflector::get();
1168
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1169
        }
1170
1171
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1172
    }
1173
1174
    /**
1175
     * Loads a given relationship (if not already) and returns