在cakephp 3中,在add表单中保存有许多关系

在cakephp 3中,在add表单中保存有许多关系,cakephp,cakephp-3.0,cakephp-3.4,Cakephp,Cakephp 3.0,Cakephp 3.4,我有一个商店,可以有许多优惠,我想在商店的添加表单中创建一个新商店和一些优惠 从我读到的字段应该是这样的 <?= $this->Form->control('offers.0.name', ['value' => 'awesome']); ?> 但是我得到了一个表单错误,因为报价的shop\u id丢失了 我如何构造我的表单以保存店铺和优惠,并在新创建的店铺id中填写优惠。//在Controller中 $shopTable=TableRegistry::get

我有一个
商店
,可以有许多
优惠
,我想在商店的
添加表单
中创建一个新商店和一些优惠

从我读到的字段应该是这样的

<?= $this->Form->control('offers.0.name', ['value' => 'awesome']); ?>

但是我得到了一个表单错误,因为报价的
shop\u id
丢失了

我如何构造我的表单以保存店铺和优惠,并在新创建的店铺id中填写优惠。

//在Controller中

$shopTable=TableRegistry::get('Shop');
$entity = $shopTable->newEntity($this->request->getData(), [
           'associated' => [
                'Offers'
            ]
          ]);
或者,与关联的patchEntity相同,您可以在控制器中执行。

//

$shopTable=TableRegistry::get('Shop');
$entity = $shopTable->newEntity($this->request->getData(), [
           'associated' => [
                'Offers'
            ]
          ]);

或者,与关联的patchEntity相同,您可以这样做。

显示您的
patchEntity()
@kicaj到目前为止,我没有使用patchEntity()。我希望我能用正确的表单结构解决这个问题。如果你想保存关系模型,你应该使用
patchEntity
和关联参数。根据cake命名约定,表的主键应该是“id”。发布您的关系和表结构请显示您的
patchEntity()
@kicaj到目前为止我没有使用patchEntity()。我希望我能用正确的表单结构解决这个问题。如果你想保存关系模型,你应该使用
patchEntity
和关联参数。根据cake命名约定,表的主键应该是“id”。请张贴您的关系和表格结构