Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1038-1052 (lines=15) @@
1035
     *
1036
     * @return \Pulsar\Relation\Relation
1037
     */
1038
    public function hasOne($model, $foreignKey = '', $localKey = '')
1039
    {
1040
        // the default local key would look like `user_id`
1041
        // for a model named User
1042
        if (!$foreignKey) {
1043
            $inflector = Inflector::get();
1044
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1045
        }
1046
1047
        if (!$localKey) {
1048
            $localKey = self::DEFAULT_ID_PROPERTY;
1049
        }
1050
1051
        return new HasOne($model, $foreignKey, $localKey, $this);
1052
    }
1053
1054
    /**
1055
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1063-1077 (lines=15) @@
1060
     *
1061
     * @return \Pulsar\Relation\Relation
1062
     */
1063
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1064
    {
1065
        if (!$foreignKey) {
1066
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1067
        }
1068
1069
        // the default local key would look like `user_id`
1070
        // for a model named User
1071
        if (!$localKey) {
1072
            $inflector = Inflector::get();
1073
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1074
        }
1075
1076
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1077
    }
1078
1079
    /**
1080
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1088-1102 (lines=15) @@
1085
     *
1086
     * @return \Pulsar\Relation\Relation
1087
     */
1088
    public function hasMany($model, $foreignKey = '', $localKey = '')
1089
    {
1090
        // the default local key would look like `user_id`
1091
        // for a model named User
1092
        if (!$foreignKey) {
1093
            $inflector = Inflector::get();
1094
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1095
        }
1096
1097
        if (!$localKey) {
1098
            $localKey = self::DEFAULT_ID_PROPERTY;
1099
        }
1100
1101
        return new HasMany($model, $foreignKey, $localKey, $this);
1102
    }
1103
1104
    /**
1105
     * Creates the child side of a Many-To-Many relationship.
@@ 1113-1127 (lines=15) @@
1110
     *
1111
     * @return \Pulsar\Relation\Relation
1112
     */
1113
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1114
    {
1115
        if (!$foreignKey) {
1116
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1117
        }
1118
1119
        // the default local key would look like `user_id`
1120
        // for a model named User
1121
        if (!$localKey) {
1122
            $inflector = Inflector::get();
1123
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1124
        }
1125
1126
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1127
    }
1128
1129
    /**
1130
     * Loads a given relationship (if not already) and returns