我正在尝试将表单集合嵌入到一个基于本食谱的集合中:collections.html
我有以下数据库shcema:产品-< POS快捷方式>- POS项目
在控制器中,我初始化如下形式:
$pos = new PosList();
for ($i=0;$i<10 ;$i++ ) {
$scut1 = new PosShortcut();
$pos->addPosShortcut($scut1);
}
$form = $this->createForm(new PosListType(), $pos);
然后我有了POSShortcut的表格:
$builder
->add('posList','hidden')
->add('product','entity',array(
'required'=>false,
'empty_value'=>'Choose product...',
'label'=>'Shordcut product',
'class'=>'StockBundle:Product',
'property'=>'name'
));
当然,主要形式包括PosShortcut表单:
<...>
->add('posShortcut','collection',array('type'=>new PosShortcutType()))
<...>
现在的问题是,对于POS快捷项,POSList id在写入数据库时被设置为NULL。原因很简单,当我首先在控制器中创建新快捷方式时,我还没有为新的快捷方式设置PosList值。但问题是,在这种状态下,我无法做到这一点,因为POS项还不存在于数据库中。
如何克服这个问题?
发布于 2014-03-05 17:11:04
class PosList
{
public function addPosShortcut($shortcut)
{
$this->shortcuts->add($shortcut);
$shortcut->setPosList($this); // *** This will link the objects ***
}
教义2会照顾其余的人。你应该知道,你所有的10个快捷键将永远张贴。
https://stackoverflow.com/questions/22199751
复制相似问题