symfony - 无法为 API 平台和 graphql 上的不可空字段返回 null
问题描述
我有一个带有未映射属性的“用户”实体,如下所示:
namespace App\Entity\User;
// ...
/**
* @var string
* @Groups({"readAnnounce", "readUser"})
*/
private $lastUrlImageProfilValid;
/**
* @return string
*/
public function getLastUrlImageProfilValid()
{
foreach ($this->imageProfil as $image){
if ($image->getIsValid()){
return $image->getUrl();
}
}
return null;
}
当我用 REST 调用这个实体时,它可以工作,但不能用 graphql,它返回这个错误:
无法为不可为空的字段 User.lastUrlImageProfilValid 返回 null
图形代码:
{
users(
first: 30,
) {
edges {
node {
lastUrlImageProfilValid
}
}
}
}
如何将未映射的属性设置为可为空?
解决方案
您需要在 PHPDoc 中使该属性为空:
/**
* @var null|string
* @Groups({"readAnnounce", "readUser"})
*/
private $lastUrlImageProfilValid;
/**
* @return null|string
*/
public function getLastUrlImageProfilValid()
或者,在 PHP 7.4 中:
/**
* @Groups({"readAnnounce", "readUser"})
*/
private ?string $lastUrlImageProfilValid;
public function getLastUrlImageProfilValid(): ?string
推荐阅读
- python-3.x - PIL异步保存图像?
- python - for 循环脚本仅在目录中的最后一个文件上完全执行
- java - 从 Intellij 和 Maven 运行 JavaFX 11 项目会产生不同的结果
- spring-security - 使用 Spring Security OAuth2 和 Okta 处理基于 url 的 RBAC
- python - 我不断收到 Python 中 colorgram 模块的此错误
- angular - 如何使用 ngClass 更改评级星的颜色
- c++ - 使用未来、承诺、分离线程时出现 C++ 错误 C2893、C2780、C2672
- excel - ActiveCell.Formula 错误 1004 - 非常简单
- react-native - undefined 不是对象(评估 this.props.navigation.dispatch)
- javascript - React,如何按列而不是按行构造表