關係,我有這些模型:CakePHP的保存在其他模型
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',)); ?>
現在我可以爲Prefix
設置State
秒。但是,當我提交表單時,選擇消失。它不保存在數據庫中。
我做錯了什麼?
我看過,但我無法找到它如何適用於我的情況。我必須爲每個'$ state'編寫'$ this-> Form-> input('State。'。$ i。'.prefix_id');''什麼會被視爲價值? – Lanbo 2013-05-10 09:17:45
外鍵將自動給予每個狀態,但是,您需要手動給其他狀態字段賦值。 – Deez 2013-05-10 09:23:13
好吧,但外鍵是我想賦予狀態字段的唯一值......我認爲最好是手動將其設置在控制器上。 – Lanbo 2013-05-10 09:29:16