CakePHP添加/编辑表单正在工作,除了外键引用

时间:2009-11-29 23:51:48

标签: php cakephp

我有一个cakephp对象(SecurityPerson),它与其他对象有一些外键关系。

这是为foriegn-key引用生成下拉列表的添加/编辑视图代码:

echo $form->input('ContractNumber');
echo $form->input('Location');

以下是模型中对这些对象的引用:

var $belongsTo = array(
    'ContractNumber' => array(
        'className' => 'ContractNumber',
        'foreignKey' => 'contract_number_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    ),
    'Location' => array(
        'className' => 'Location',
        'foreignKey' => 'location_id',
        'conditions' => '',
        'fields' => '',
        'order' => ''
    )
);

这是add()控制器的相关部分:

    if (!empty($this->data)) {
        $this->SecurityPerson->create();
        if ($this->SecurityPerson->save($this->data)) {
            $this->Session->setFlash(__('The SecurityPerson has been saved', true));
            $this->redirect(array('action'=>'index'));
        } else {
            $this->Session->setFlash(__('The SecurityPerson could not be saved. Please, try again.', true));
        }
    }
    $contractNumbers = $this->SecurityPerson->ContractNumber->find('list');
    $locations = $this->SecurityPerson->Location->find('list');
    $this->set(compact('contractNumbers', 'locations'));

这对我来说都很好看,包括在添加和编辑页面上为下拉列表生成的HTML。但是......只有空值才会被添加到sercurity_person行。

任何人都可以轻松看到正在发生的事情,或者给我一个良好的排除故障的开始吗?

编辑:到目前为止我尝试了什么:

我已经尝试过查看SQL查询。外键ID的字段名称不会出现在INSERT或UPDATE语句中。

我试过看$data结构。外键引用如下所示:             [ContractNumber] => 2             [位置] => 1

1 个答案:

答案 0 :(得分:0)

好的,结果表格输入需要这样做:

    echo $form->input('contract_number_id', array('type' => 'select'));
    echo $form->input('location_id', array('type' => 'select'));