Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

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