diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java index 50c3248f5c1..56993a8fc5a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java @@ -335,6 +335,10 @@ public class CodegenModel { return discriminator; } + public String getDiscriminatorName() { + return discriminator == null ? null : discriminator.getPropertyName(); + } + public void setDiscriminator(Discriminator discriminator) { this.discriminator = discriminator; } diff --git a/modules/openapi-generator/src/main/resources/php/model_generic.mustache b/modules/openapi-generator/src/main/resources/php/model_generic.mustache index c9300084b0f..375a216b409 100644 --- a/modules/openapi-generator/src/main/resources/php/model_generic.mustache +++ b/modules/openapi-generator/src/main/resources/php/model_generic.mustache @@ -1,6 +1,6 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^parentSchema}}implements ModelInterface, ArrayAccess{{/parentSchema}} { - const DISCRIMINATOR = {{#discriminator}}'{{discriminator}}'{{/discriminator}}{{^discriminator}}null{{/discriminator}}; + const DISCRIMINATOR = {{#discriminator}}'{{discriminatorName}}'{{/discriminator}}{{^discriminator}}null{{/discriminator}}; /** * The original name of the model. @@ -166,7 +166,7 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa {{#discriminator}} // Initialize discriminator property with the model name. - $discriminator = array_search('{{discriminator}}', self::$attributeMap); + $discriminator = array_search('{{discriminatorName}}', self::$attributeMap); $this->container[$discriminator] = static::$swaggerModelName; {{/discriminator}} } diff --git a/samples/openapi3/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php b/samples/openapi3/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php index 76a22ff9280..aa5f32d9580 100644 --- a/samples/openapi3/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php +++ b/samples/openapi3/client/petstore/php/SwaggerClient-php/lib/Model/Animal.php @@ -42,7 +42,7 @@ use \Swagger\Client\ObjectSerializer; */ class Animal implements ModelInterface, ArrayAccess { - const DISCRIMINATOR = 'Discriminator{propertyName='className', mapping=null}'; + const DISCRIMINATOR = 'className'; /** * The original name of the model. @@ -186,7 +186,7 @@ class Animal implements ModelInterface, ArrayAccess $this->container['color'] = isset($data['color']) ? $data['color'] : 'red'; // Initialize discriminator property with the model name. - $discriminator = array_search('Discriminator{propertyName='className', mapping=null}', self::$attributeMap); + $discriminator = array_search('className', self::$attributeMap); $this->container[$discriminator] = static::$swaggerModelName; }