HTTP 500 错误发生异常 Symfony/EasyAdmin

HTTP 500 ERROR An exception occurred Symfony/EasyAdmin

执行查询时发生异常:SQLSTATE[23502]:非空违规:7 错误:关系“book”的列“genre_id”中的空值违反非空约束 详细信息:失败行包含 (7, blabla, abababa, 0, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inte..., 21/07/2007, null, null, null, null)。

写入书籍数据时出现此错误。我试图输入 genre_id,流派的名称,但它不起作用。 ID 是由 Symfony 自动生成的,所以我不明白如何避免这种情况来创建图书数据。

精度:我在书籍实体中建立了流派和书籍之间的多对一关系。

你知道如何避免这个错误吗?

我的书实体文件:

...
/**
* @ORM\Column(type="string", length=255)
     */
    private $genre;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $description;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $date_de_parution;

    /**
     * @ORM\ManyToOne(targetEntity=Genre::class, inversedBy="livres")
     * @ORM\JoinColumn(nullable=false)
     */
    private $Genre;


[![genre table related to books][1]][1]
  [1]: https://i.stack.imgur.com/GWQNR.png

您的流派是必需的 (nullable=false) 外键。所以保存到数据库的时候需要设置一个流派。

如果您希望书籍没有类型,您应该使用 nullable=true 类型参考。请记住,您的 getters/setters 类型也应反映此 null 可行 return。

/**
 * @return Genre|null
 */
public function getGenre(): ?Genre   // See the questionmark (for php 7+ only)
{
    return $this->Genre;
}

[更新 - 错过了 EasyAdmin 部分]

使用管理生成器时,您应该寻找诸如如何管理关系之类的内容。似乎 EasyAdmin 的文档不是那么好。查看 the demo application 似乎有一个 AssociationField 字段类型,可用于引用关系。