Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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