diff --git a/ModelDescriber/ObjectModelDescriber.php b/ModelDescriber/ObjectModelDescriber.php index 8c726c9..56a1fdb 100644 --- a/ModelDescriber/ObjectModelDescriber.php +++ b/ModelDescriber/ObjectModelDescriber.php @@ -110,6 +110,8 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar $property->setType('string'); $property->setFormat('date-time'); } else { + $type = new Type($type->getBuiltinType(), false, $type->getClassName(), $type->isCollection(), $type->getCollectionKeyType(), $type->getCollectionValueType()); // ignore nullable field + $property->setRef( $this->modelRegistry->register(new Model($type, $model->getGroups())) ); diff --git a/Tests/Functional/Entity/User.php b/Tests/Functional/Entity/User.php index 43643eb..bb03ea4 100644 --- a/Tests/Functional/Entity/User.php +++ b/Tests/Functional/Entity/User.php @@ -66,6 +66,11 @@ class User */ private $users; + /** + * @var User|null + */ + private $friend; + /** * @var string * @@ -118,6 +123,10 @@ class User { } + public function setFriend(self $friend = null) + { + } + public function setDummy(Dummy $dummy) { } diff --git a/Tests/Functional/FunctionalTest.php b/Tests/Functional/FunctionalTest.php index 95d8071..dbd2012 100644 --- a/Tests/Functional/FunctionalTest.php +++ b/Tests/Functional/FunctionalTest.php @@ -41,6 +41,8 @@ class FunctionalTest extends WebTestCase $modelProperties = $this->getModel('Article')->getProperties(); $this->assertCount(1, $modelProperties); $this->assertTrue($modelProperties->has('author')); + $this->assertSame('#/definitions/User2', $modelProperties->get('author')->getRef()); + $this->assertFalse($modelProperties->has('content')); } @@ -209,6 +211,9 @@ class FunctionalTest extends WebTestCase ], 'type' => 'array', ], + 'friend' => [ + '$ref' => '#/definitions/User', + ], 'dummy' => [ '$ref' => '#/definitions/Dummy2', ],