我有一个董事会实体和一个股份实体。一个董事会可以有很多股份(比如一个用户与另一个用户共享他制作的董事会)。
Boards实体有一个名为boardId的auto股份有限公司列。shares实体有一个名称相同的列,用于将股票映射到董事会。这是映射它的代码:
板:
/**
* @orm:OneToMany(targetEntity="Shares", mappedBy="boards", cascade={"persist", "remove"})
*/
private $shares;
股份:
/**
* @orm:ManyToOne(targetEntity="Boards", inversedBy="shares")
* @orm:JoinColumns({
* @orm:JoinColumn(name="board_id", referencedColumnName="board_id")
* })
*/
private $boards;
当我坚持一份新的股票时:
$share = new Shares();
$share->setMemberIdT($members[0]->getMemberId());
$share->setMemberIdF($id);
$share->setBoardId($boards[0]->getBoardId());
$share->setDateShared();
$share->setReceived(0);
我打电话给董事会:
$boards = $em->getRepository('PixbellyHomeBundle:Boards')
->findByBoardId($board);
我已经回显了boardId,直到前一行,id是正确的,但是当我调用persistent时,我得到了这个错误:
"response":{"errorInfo":["23000",1048,"Column 'board_id' cannot be null"]}}
我认为这与关系有关,但我已经尝试过了,但什么都没有,有什么帮助吗?
您应该执行以下操作:
$share->setBoards($boards);