Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1073-1087 (lines=15) @@
1070
     *
1071
     * @return \Pulsar\Relation\Relation
1072
     */
1073
    public function hasOne($model, $foreignKey = '', $localKey = '')
1074
    {
1075
        // the default local key would look like `user_id`
1076
        // for a model named User
1077
        if (!$foreignKey) {
1078
            $inflector = Inflector::get();
1079
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1080
        }
1081
1082
        if (!$localKey) {
1083
            $localKey = self::DEFAULT_ID_PROPERTY;
1084
        }
1085
1086
        return new HasOne($model, $foreignKey, $localKey, $this);
1087
    }
1088
1089
    /**
1090
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1098-1112 (lines=15) @@
1095
     *
1096
     * @return \Pulsar\Relation\Relation
1097
     */
1098
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1099
    {
1100
        if (!$foreignKey) {
1101
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1102
        }
1103
1104
        // the default local key would look like `user_id`
1105
        // for a model named User
1106
        if (!$localKey) {
1107
            $inflector = Inflector::get();
1108
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1109
        }
1110
1111
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1112
    }
1113
1114
    /**
1115
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1123-1137 (lines=15) @@
1120
     *
1121
     * @return \Pulsar\Relation\Relation
1122
     */
1123
    public function hasMany($model, $foreignKey = '', $localKey = '')
1124
    {
1125
        // the default local key would look like `user_id`
1126
        // for a model named User
1127
        if (!$foreignKey) {
1128
            $inflector = Inflector::get();
1129
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1130
        }
1131
1132
        if (!$localKey) {
1133
            $localKey = self::DEFAULT_ID_PROPERTY;
1134
        }
1135
1136
        return new HasMany($model, $foreignKey, $localKey, $this);
1137
    }
1138
1139
    /**
1140
     * Creates the child side of a Many-To-Many relationship.
@@ 1148-1162 (lines=15) @@
1145
     *
1146
     * @return \Pulsar\Relation\Relation
1147
     */
1148
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1149
    {
1150
        if (!$foreignKey) {
1151
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1152
        }
1153
1154
        // the default local key would look like `user_id`
1155
        // for a model named User
1156
        if (!$localKey) {
1157
            $inflector = Inflector::get();
1158
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1159
        }
1160
1161
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1162
    }
1163
1164
    /**
1165
     * Loads a given relationship (if not already) and returns