我需要將多個複選框保存到連接表的幫助。Cakephp - 將多個複選框保存到連接表
有3個表:
- 客戶(ID,姓名,地址)
- 產品(ID,PRODUCT_NAME,DESC)所有產品都進入了。
- Customers_Products(ID,PRODUCT_ID,CUSTOMER_ID)< - (連接表)
步驟1:
客戶選擇所需產物(蘋果,橙子,櫻桃在複選框) 和點擊<Next>
按鈕
第2步:
˚F填寫自己的表格(姓名,地址等)。 並單擊<Submit>
按鈕
第3步:
我節省步驟2到Customers表從步驟1至Customers_Products表個人信息和選擇的產品ID(或多個)。 它確實將個人信息和產品ID保存到指定的表格中,但是當客戶選擇多個產品時,它不會保存產品ID。 它增加了行但產品id字段爲空。
這是我的觀點:
<?php echo $this->Form->checkbox('CustomerProduct.product.', array('value' => '1', 'style' => 'float: left; display: inline')); ?>
<?php echo $this->Form->checkbox('CustomerProduct.product.', array('value' => '2', 'style' => 'float: left; display: inline')); ?>
<?php echo $this->Form->checkbox('CustomerProduct.product.', array('value' => '3', 'style' => 'float: left; display: inline')); ?>
<?php echo $this->Form->input('Customers.name', array('value'=>'Jon Toshmatov')); ?>
控制器:
$this->Prospect->saveAll($this->request->data);
型號:
public $hasAndBelongsToMany = array(
'CustomerProduct' => array(
'className' => 'CustomerProduct',
'joinTable' => 'customers_products',
'foreignKey' => 'customer_id',
'associationForeignKey' => 'product_id',
'unique' => 'false',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
期望的結果: 我想保存數據按以下順序:
Customers table: id name 1 Jon T Customers_Products *(join table)* id product_id customer_id 1 4 1 2 3 1 3 5 1
thaJeztah, 感謝您的回覆,我就能夠解決問題。 問題與我的形式複選框的名字,該複選框值不正確地傳遞。 – 2013-03-03 20:37:25
問題可以再次關閉,謝謝。 – 2013-03-03 20:37:59