Symfony2无法持久保存具有关系的列

时间:2012-08-03 04:39:26

标签: php mysql symfony doctrine-orm auto-increment

我有一个董事会实体和一个股份实体。董事会可以拥有许多股票(就像用户共享他与其他用户共同制作的董事会一样)。

The Boards实体有一个汽车公司。列名为boardId。 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);

我正在调用boardId:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

你应该做的事情如下:

$share->setBoards($boards);