我需要将多个复选框保存到连接表的帮助。
有3张表:
- 客户(身份证、姓名、地址)
- Products (id,product_name,desc) 输入所有产品。
- Customers_Products (id,product_id,customer_id) <-(连接表)
第 1 步:
客户选择所需的产品(复选框中的苹果、橙子、樱桃)
并单击<Next>
按钮
第 2 步:
填写有关自己的表格(姓名、地址等)。
并点击<Submit>
按钮
第 3 步:
我将第 2 步中的个人信息保存到客户表中,并将第 1 步中的选定产品 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' => ''
)
期望的结果: 我想按以下顺序保存数据:
客户表: 身份证名称 1 乔恩 T 客户_产品*(加入表)* id product_id customer_id 1 4 1 2 3 1 3 5 1