0

2 つのモデルがあり、HABTM 関係によって関連付けられています。Jobs と Tests です。リレーションシップを正常に追加/編集できますが (結合テーブルに表示されるのでわかります)、作成および変更されたフィールドは設定されません。

モデルの関係は次のとおりです。

//Job.php
public $hasAndBelongsToMany = array (
    'Test' => array (
        'classname' => 'Test', 
        'foreignKey'=>'job_id',
        'joinTable' => 'jobs_tests',
        'associatedForeignKey' => 'test_id'
    )
);

//Test.php
    public $hasAndBelongsToMany = array(
        'Job' => array(
            'className'=> 'Job',
            'joinTable'=>'jobs_tests',
            'foreignKey' => 'test_id',
            'associatedForeignKey'=> 'job_id'
            )

    );

ここに /view/Jobs/edit.ctp があります

            echo $this->Form->select('Test', $test_options, array('class'=>'form-control', 'multiple'=>'checkbox'));
//This is always empty (nothing selected/checked). 

コントローラーで更新する方法は次のとおりです...

    if ($this->request->isPut() ) {
        $data = $this->request->data;
        $save = $this->Job->save( $data );
        if ($save) {
            $this->Session->setFlash('Job edited');
        } else {
            $this->Session->setFlash('Error editing job');
        }
    } 

結合テーブルのレコードは正しいですが、作成および変更されたレコードは常に NULL です。

私たちは何を間違っていますか?

4

1 に答える 1