如何直接且仅将数据插入 HABTM table ,

how insert data directly and only into HABTM table ,

我有 1 个类别 table 和第二个功能 table,它们之间的关联是 cakephp 中的 HABTM

现在我不知道如何在 categories_features table 中插入值。 我以前使用过 HABTM,但当时我在使用 "saveAll()" 方法创建一个项目时在此 table 中插入值。 但在这种情况下,当下拉菜单中的类别和复选框形式的功能时,我有单独的页面。

我试图创建新的模型 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 table

中添加数据
 <?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>

table结构

编号 | category_id | feature_id

如果您使用的是 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')),
);