我有一个董事会实体和一个股票实体。一个图板可以有很多共享(就像一个用户与另一个用户共享他制作的图板一样)。
董事会实体拥有一家汽车公司。名为 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"]}}
我认为这与关系有关,但我已经尝试了一切,但没有任何帮助,有什么帮助吗?
最佳答案
你应该这样做:
$share->setBoards($boards);
关于php - Symfony2 无法持久化有关系的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789354/