Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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