0

私はこれらのモデルを持っています:

class Prefix extends AppModel {
    public $displayField = 'prefix';

    public $hasMany = array(
        'State' => array(
            'className' => 'State',
            'foreignKey' => 'prefix_id',
            'dependent' => false,
        ),
    );
}

class State extends AppModel {
    public $displayField = 'name';

    public $belongsTo = array(
        'Prefix' => array(
            'className' => 'Prefix',
            'foreignKey' => 'prefix_id',
        ),
    );
}

次にadmin_add、自動足場から次のメソッドを取得します。

public function admin_add() {
    if ($this->request->is('post')) {
        $this->Peefix->create();
        if ($this->Prefix->save($this->request->data)) {
            $this->redirect(array('action' => 'index'));
        } else {
                            // Error message
        }
    }
    $states = $this->Prefix->State->find('list');
    $this->set(compact('states'));
}

私のフォームにはそれらのリストもあります:

<?php echo $this->Form->input('State', array('multiple' => 'checkbox', 'type' => 'select',)); ?>

Stateこれで、の を設定できますPrefix。ただし、フォームを送信すると、選択が消えます。データベースには保存されません。

私は何を間違えましたか?

4

2 に答える 2

1

プレフィックスごとに 1 つの状態しかないかのようにモデルをリンクし、多くのプレフィックスが 1 つの状態に "割り当て" られました。つまり、使用できません'multiple' => 'checkbox'。したがって、これを削除するか、モデルの関連付けを HABTM に変更してください。

于 2013-05-10T10:24:39.043 に答える