如何更新 Symfony 4 和 API 平台中的实体
How can I update an Entity in Symfony 4 and API Platform
我在 API 平台上使用 Symfony 4,我通过 运行:
添加一些字段来改变我现有的实体
php bin/console Make:Entity
再一次。
之后我 运行:
php bin/console doctrine:schema:update --force
和:
php bin/console cache:clear
然后我将实体和存储库复制到服务器并清理那里的缓存。
之后,我直接在数据库中更改了 SQL Table,反映了与本地端(我 运行 迁移)相同的情况。
当我现在通过前往服务器上的 /symfonysite/api/ 打开我的 Swagger 文档时,
我可以看到模型已正确更改,但路线示例(如果您单击路线)并未反映出这一点。
此外,当我使用 Postman 执行 GET 请求时,它只返回反映旧模型的旧实体,而没有新添加的字段。
你能指出我遗漏了什么吗?
您在生产站点上更改实体的方式是什么?
多谢指教!
好的,我终于明白了,很简单。
为了在结果中反映新模型,我必须在我的实体字段中添加一个组。由于它是一个获取请求,我必须在注释 "get" 中添加组 "get"
@Groups({"get"})
当我问这个问题时,我的实体看起来像这样:
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $firstname;
最后我把它改成了这个
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({"get"})
*/
private $firstname;
我在 API 平台上使用 Symfony 4,我通过 运行:
添加一些字段来改变我现有的实体php bin/console Make:Entity
再一次。
之后我 运行:
php bin/console doctrine:schema:update --force
和:
php bin/console cache:clear
然后我将实体和存储库复制到服务器并清理那里的缓存。 之后,我直接在数据库中更改了 SQL Table,反映了与本地端(我 运行 迁移)相同的情况。
当我现在通过前往服务器上的 /symfonysite/api/ 打开我的 Swagger 文档时, 我可以看到模型已正确更改,但路线示例(如果您单击路线)并未反映出这一点。 此外,当我使用 Postman 执行 GET 请求时,它只返回反映旧模型的旧实体,而没有新添加的字段。
你能指出我遗漏了什么吗? 您在生产站点上更改实体的方式是什么?
多谢指教!
好的,我终于明白了,很简单。 为了在结果中反映新模型,我必须在我的实体字段中添加一个组。由于它是一个获取请求,我必须在注释 "get" 中添加组 "get"
@Groups({"get"})
当我问这个问题时,我的实体看起来像这样:
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $firstname;
最后我把它改成了这个
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Groups({"get"})
*/
private $firstname;