如何使用cakephp中的一个表单将数据插入(保存)到两个表中?

时间:2015-03-24 09:22:08

标签: cakephp

我在DB中有两个名为users和demos的表。 用户字段包含(idusernamepasswordemailphone) 和演示字段包含(iduser_id [忘记密钥],sexcity

1 个答案:

答案 0 :(得分:1)

首先,在您的表单(您的视图)中,您必须准备好数据。确保每个输入都具有以下格式

$this->Format->input('Model.field', array(...));

通过这种方式,您可以指定每个输入属于哪个模型。

现在你有两个选择

如果您的模型之间存在任何关系

然后您可以使用saveAll()saveAsociated()方法,只需确保您的数据具有适当的格式,例如:

$data = array(
    'Article' => array('title' => 'My first article'),
    'Comment' => array(
        array('body' => 'Comment 1', 'user_id' => 1),
        array('body' => 'Comment 2', 'user_id' => 12),
        array('body' => 'Comment 3', 'user_id' => 40),
    ),
);

在这种情况下,您可以执行saveAll()或saveAssociated()(为简单起见,我建议使用saveAll())

如果您的模型之间没有关系

然后在您的控制器中,您必须导入外部模型,如此

$this->loadModel('ImportedModel');

之后保存当前模型,然后创建并保存外部模型。

$this->Model->save($this->request->data);
$this->ImportedModel->save($this->request->data);