所以,我开始相信这是不可能的,但我希望有人会证明我错了。以下问题的关键是 我想在同一表单提交中为两个HABTM关联模型添加新记录 。
在我画一幅关于模特联想的快速图片的时候和我一起 - 我有两个模特:预订& PaymentItem。这两者有HABTM关系。我已经使用BookingPaymentItem模型加入了他们(我需要在稍后阶段访问此模型以跟踪付款)。
了解预订表中的所有字段并不重要,但以下是付款项目模型中的相关字段:
**payment_items - table**
id
name
description
price
**booking_payment_items**
id
booking_id
payment_item_id
quantity
因此,在预订添加视图中,我有我要添加的所有预订字段。现在,在表单提交时,我需要创建两个新的付款项目 - 住宿和存款。所以,我的想法是添加一些隐藏的字段,只显示字段:住宿费用和存款金额给用户。这两个新的付款项目需要与新创建的预订相关联(以及扩展名为BookingPaymentItem条目)。
以下是我添加视图中的表单设置:
<? echo $this->Form->hidden('PaymentItem.1.id', array('value'=>$this->Text->uuid(), 'div' => false)); ?>
<? echo $this->Form->input('PaymentItem.1.price', array('label' => 'Total Tariff','div' => false)) ?>
<? echo $this->Form->hidden('PaymentItem.1.name', array('value'=>'Accommodation', 'div' => false)); ?>
<? echo $this->Form->hidden('PaymentItem.1.description', array('value'=>'Accommodation', 'div' => false)); ?>
<? echo $this->Form->hidden('PaymentItem.2.id', array('value'=>$this->Text->uuid(), 'div' => false)); ?>
<? echo $this->Form->input('PaymentItem.2.price', array('label' => false,'div' => false)); ?>
<? echo $this->Form->hidden('PaymentItem.2.name', array('value'=>'Deposit', 'div' => false)); ?>
<? echo $this->Form->hidden('PaymentItem.2.description', array('value'=>'Deposit', 'div' => false)); ?>
这是request-&gt;数据变量转储:
array(
'Booking' => array(
'property_id' => 'COC1127',
'checkin' => '2013-01-23',
'checkout' => '2013-01-30',
'guest_id' => '02',
'ownervisible' => '1',
'adults' => '1',
'children' => '0',
'infants' => '0',
'deposit_due_date' => '2013-01-16'
),
'PaymentItem' => array(
(int) 1 => array(
'id' => '50f4612d-3858-4d68-9dee-0b70c2e1e283',
'price' => '1200',
'name' => 'Accommodation',
'description' => 'Accommodation'
),
(int) 2 => array(
'id' => '50f4612d-a334-4615-ba8d-0b70c2e1e283',
'price' => '400',
'name' => 'Deposit',
'description' => 'Deposit'
)
)
)
结果:
我玩了一下,得到了更多的保存,但没有任何东西与我需要做的事情相符。
我需要添加预订,添加两个付款项目以及将关联的booking_payment_item条目添加到ID .....
有什么想法吗?