Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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