0

BoardsエンティティとSharesエンティティがあります。ボードは多くの共有を持つことができます(ユーザーが作成したボードを別のユーザーと共有する場合のように)。

Boardsエンティティにはautoincがあります。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);

文字通り前の行とIDが正しいまで、boardIdをエコーアウトしましたが、persistを呼び出すと、次のエラーが発生します。

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

私はそれが関係に関係していると思いますが、私はそれをすべて試しましたが、何もしませんでした、何か助けはありますか?

4

1 に答える 1

1

次のようなことをする必要があります。

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