0

我有一个董事会实体和一个股份实体。一个板可以有很多份额(就像一个用户与另一个用户共享一个他创建的板)。

Boards 实体拥有一家汽车公司。名为 boardId 的列。共享实体具有将共享映射到板的同名列。这是映射它的代码:

板:

/**
 *  @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);

我这样称呼boardId:

 $boards = $em->getRepository('PixbellyHomeBundle:Boards')
    ->findByBoardId($board);

我已经回显了 boardId ,直到字面上的前行和 id 是正确的,但是当我调用persist 时,我收到了这个错误:

"response":{"errorInfo":["23000",1048,"Column 'board_id' cannot be null"]}}

我认为这与关系有关,但我已经尝试了一切,没有任何帮助,有什么帮助吗?

4

1 回答 1

1

您应该执行以下操作:

$share->setBoards($boards);
于 2012-08-03T07:53:44.507 回答