我是API平台的初学者。我正在与两个具有Author
关系的实体Book
和OneToMany
合作:
我尝试了POST
,GET
和DELETE
方法,它们可以工作。但是,PUT
方法不起作用,并返回以下错误:
“ hydra:title”:“发生错误”,
“ hydra:description”:**“执行'UPDATE Book SET author_id =?WHERE id =?时发生异常。带有参数[null,1]:\ n \ nSQLSTATE [23000]:
违反完整性约束:1048列'author_id'不能为空”
这是我的代码:
/**
* @ORM\Entity(repositoryClass="App\Repository\AuthorRepository")
* @ApiResource(
* normalizationContext={"groups"={"book:output"}},
* denormalizationContext={"groups"={"book:input"}}
* )
*/
class Author
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups({"book:input"})
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"book:output", "book:input"})
*/
private $firstname;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"book:output", "book:input"})
*/
private $lastname;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Book", mappedBy="author", cascade={"all"})
* @Groups({"book:output", "book:input"})
*/
private $books;
/**
* @ORM\Entity(repositoryClass="App\Repository\BookRepository")
* @ApiResource()
*/
class Book
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @Groups({"book:output", "book:input"})
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups({"book:output", "book:input"})
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Author", inversedBy="books")
* @ORM\JoinColumn(nullable=false)
*/
private $author;
答案 0 :(得分:0)
您似乎想为更新的实体传递null ID,这对于ORM来说是必不可少的。可以分享您的更新功能吗?