Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1045-1059 (lines=15) @@
1042
     *
1043
     * @return \Pulsar\Relation\Relation
1044
     */
1045
    public function hasOne($model, $foreignKey = '', $localKey = '')
1046
    {
1047
        // the default local key would look like `user_id`
1048
        // for a model named User
1049
        if (!$foreignKey) {
1050
            $inflector = Inflector::get();
1051
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1052
        }
1053
1054
        if (!$localKey) {
1055
            $localKey = self::DEFAULT_ID_PROPERTY;
1056
        }
1057
1058
        return new HasOne($model, $foreignKey, $localKey, $this);
1059
    }
1060
1061
    /**
1062
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1070-1084 (lines=15) @@
1067
     *
1068
     * @return \Pulsar\Relation\Relation
1069
     */
1070
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1071
    {
1072
        if (!$foreignKey) {
1073
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1074
        }
1075
1076
        // the default local key would look like `user_id`
1077
        // for a model named User
1078
        if (!$localKey) {
1079
            $inflector = Inflector::get();
1080
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1081
        }
1082
1083
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1084
    }
1085
1086
    /**
1087
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1095-1109 (lines=15) @@
1092
     *
1093
     * @return \Pulsar\Relation\Relation
1094
     */
1095
    public function hasMany($model, $foreignKey = '', $localKey = '')
1096
    {
1097
        // the default local key would look like `user_id`
1098
        // for a model named User
1099
        if (!$foreignKey) {
1100
            $inflector = Inflector::get();
1101
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1102
        }
1103
1104
        if (!$localKey) {
1105
            $localKey = self::DEFAULT_ID_PROPERTY;
1106
        }
1107
1108
        return new HasMany($model, $foreignKey, $localKey, $this);
1109
    }
1110
1111
    /**
1112
     * Creates the child side of a Many-To-Many relationship.
@@ 1120-1134 (lines=15) @@
1117
     *
1118
     * @return \Pulsar\Relation\Relation
1119
     */
1120
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1121
    {
1122
        if (!$foreignKey) {
1123
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1124
        }
1125
1126
        // the default local key would look like `user_id`
1127
        // for a model named User
1128
        if (!$localKey) {
1129
            $inflector = Inflector::get();
1130
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1131
        }
1132
1133
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1134
    }
1135
1136
    /**
1137
     * Loads a given relationship (if not already) and returns