Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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