Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1023-1037 (lines=15) @@
1020
     *
1021
     * @return \Pulsar\Relation\Relation
1022
     */
1023
    public function hasOne($model, $foreignKey = '', $localKey = '')
1024
    {
1025
        // the default local key would look like `user_id`
1026
        // for a model named User
1027
        if (!$foreignKey) {
1028
            $inflector = Inflector::get();
1029
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1030
        }
1031
1032
        if (!$localKey) {
1033
            $localKey = self::DEFAULT_ID_PROPERTY;
1034
        }
1035
1036
        return new HasOne($model, $foreignKey, $localKey, $this);
1037
    }
1038
1039
    /**
1040
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1048-1062 (lines=15) @@
1045
     *
1046
     * @return \Pulsar\Relation\Relation
1047
     */
1048
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1049
    {
1050
        if (!$foreignKey) {
1051
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1052
        }
1053
1054
        // the default local key would look like `user_id`
1055
        // for a model named User
1056
        if (!$localKey) {
1057
            $inflector = Inflector::get();
1058
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1059
        }
1060
1061
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1062
    }
1063
1064
    /**
1065
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1073-1087 (lines=15) @@
1070
     *
1071
     * @return \Pulsar\Relation\Relation
1072
     */
1073
    public function hasMany($model, $foreignKey = '', $localKey = '')
1074
    {
1075
        // the default local key would look like `user_id`
1076
        // for a model named User
1077
        if (!$foreignKey) {
1078
            $inflector = Inflector::get();
1079
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1080
        }
1081
1082
        if (!$localKey) {
1083
            $localKey = self::DEFAULT_ID_PROPERTY;
1084
        }
1085
1086
        return new HasMany($model, $foreignKey, $localKey, $this);
1087
    }
1088
1089
    /**
1090
     * Creates the child side of a Many-To-Many relationship.
@@ 1098-1112 (lines=15) @@
1095
     *
1096
     * @return \Pulsar\Relation\Relation
1097
     */
1098
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1099
    {
1100
        if (!$foreignKey) {
1101
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1102
        }
1103
1104
        // the default local key would look like `user_id`
1105
        // for a model named User
1106
        if (!$localKey) {
1107
            $inflector = Inflector::get();
1108
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1109
        }
1110
1111
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1112
    }
1113
1114
    /**
1115
     * Loads a given relationship (if not already) and returns