我有1个类别表和第二个功能表,并且它们之间的关联是cakephp中的HABTM
现在我不确切知道如何在categories_features表中插入值。 之前我使用过HABTM,但是当我使用“saveAll()”方法创建一个项目时,我在此表中插入值。 但在这种情况下,我在下拉菜单中的类别和复选框形式的功能时有分页。
我试图创建新的模型categoriesFeature来解决这个问题,但是当我以这种形式提交数据时,数据
Array
(
[CategoriesFeature] => Array
(
[Category_id] => 2
[feature_id] => Array
(
[0] => 1
[1] => 2
)
)
)
所以我得到错误
"Array to string conversion [CORE\Cake\Model\Datasource\DboSource.php, line 1009]"
Column not found: 1054 Unknown column 'Array' in 'field list'
"INSERT INTO `ecomerce`.`categories_features` (`feature_id`) VALUES (Array)"
如果我使用错误的方法,请指导我。
查看在categories_features表中添加数据的代码
<?php echo $this->Form->create('CategoriesFeature', array('id' => 'cf'));?>
<fieldset>
<legend>Feature Add Form</legend>
<?php
echo $this->Form->input('Category_id',array(
'data-rel' => 'chosen',
'placeholder' => 'Select Category'
));
$keys= array();
$values =array();
echo "<h2> Select Features for above selected Category </h2>";
echo $this->Form->input('feature_id',
array('label'=>'',
'type'=>'select',
'multiple'=>'checkbox',
'options'=>$features)
);
echo $this->Form->submit();
?>
</fieldset>
表格结构
id | category_id | FEATURE_ID
答案 0 :(得分:0)
如果您使用saveAll方法,则需要调整数组:
Array
(
[CategoriesFeature] => Array
0 => array(
[Category_id] => 2
[feature_id] => 1
),
1 => array(
[Category_id] => 2
[feature_id] => 2
)
)
您应该使用saveMany:按Model::saveMany(array $data = null, array $options = array())
$data = array(
array('Article' => array('title' => 'title 1')),
array('Article' => array('title' => 'title 2')),
);