CakePHP - 两种HABTM模型的新记录

时间:2013-01-14 20:00:55

标签: php cakephp activerecord has-and-belongs-to-many

所以,我开始相信这是不可能的,但我希望有人会证明我错了。以下问题的关键是 我想在同一表单提交中为两个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'
    )
)
)

结果:

  1. 预订模式可以按预期完美保存
  2. 未记录任何付款项目
  3. 未记录预订付款项目
  4. 我玩了一下,得到了更多的保存,但没有任何东西与我需要做的事情相符。

    我需要添加预订,添加两个付款项目以及将关联的booking_payment_item条目添加到ID .....

    有什么想法吗?

0 个答案:

没有答案