所以,我在CakePhp中有一个使用Formhelper的表单。这种形式有两种相关的模型:Booking&客人。数据库表似乎设置正确,因为页面通过模型中的关联足够准确地填充值。
保存表单数据时,预订信息会保存,但不会保存访客信息。我已经简化了下面代码段中的代码。我有什么想法吗?
模型
class Booking extends AppModel {
public $name = "Booking";
/*Associations Section*/
public $belongsTo = array('Property','Bookingsource');
public $hasMany = array('Payment','Occupant','Bookingfee');
public $hasAndBelongsToMany = array(
'Addon',
'Guest' => array(
'unique' => FALSE
)
);
}
控制器
public function edit($id) {
if ($this -> request -> is('post')) {
if ($this -> Booking -> saveAll($this -> request -> data)) {
$this -> Session -> setFlash('Booking Edited Successully!', "goodflash");
} else {
$this -> Session -> setFlash('Oops Something went wrong!', "badflash");
}
} else {
$this->data = $this -> Booking -> findById($id);
$this -> set('bookingid', $id);
}
}
查看
<?php
echo $this->Form->create("Booking", array('type' => 'post'));
echo $this -> Form -> hidden('Booking.id');
echo $this -> Form -> input('Booking.property_id');
echo $this -> Form -> input('Booking.checkin');
echo $this -> Form -> input('Booking.checkout');
echo $this -> Form -> input('Guest.0.firstname');
echo $this -> Form -> end("Submit");
?>
在查看正在处理的SQL时,我没有看到任何建议尝试编辑附加到我的模型的Guest表。
5 UPDATE `cake_bookingsystem`.`bookings` SET `id` = '10000', `property_id` = '01', `checkin` = '2012-11-10', `checkout` = '2012-12-13' WHERE `cake_bookingsystem`.`bookings`.`id` = '10000' 0 0 8
6 COMMIT 0 0 8
答案 0 :(得分:3)
尝试在您的视图中添加访客记录的ID字段:
<?php
echo $this->Form->create("Booking", array('type' => 'post'));
echo $this -> Form -> hidden('Booking.id');
echo $this -> Form -> input('Booking.property_id');
echo $this -> Form -> input('Booking.checkin');
echo $this -> Form -> input('Booking.checkout');
echo $this -> Form -> input('Guest.0.id');
echo $this -> Form -> input('Guest.0.firstname');
echo $this -> Form -> end("Submit");
&GT;