将数据保存到2个表cakephp 3中

时间:2015-03-02 07:27:29

标签: forms cakephp save cakephp-3.0

我是Cakephp 3的新手。我尝试在Cakephp 3中执行saveAll功能,但不成功。

我有2个表:商家和用户

这两个表之间的关系如下:

用户有很多商家, 商家属于用户

我希望创建一个商家注册表单,将表格插入两个表格。

有人可以帮我解决如何使用Cakephp 3从1个表单中将数据插入2个不同的表吗?

我的代码如下:

 <?= $this->Form->create($merchant); ?>
<fieldset>
    <legend><?= __('Add Merchant') ?></legend>
    <?php
        echo $this->Form->input('User.id');
        echo $this->Form->input('User.username');
        echo $this->Form->input('User.password');
        echo $this->Form->input('merchant_type_id', ['options' => $merchantTypes]);
        echo $this->Form->input('name');
        echo $this->Form->input('identity_number');
        echo $this->Form->input('phone_number');
    ?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>

控制器:

public function registration()
{
    $merchant = $this->Merchants->newEntity();
    if ($this->request->is('post')) {
        $merchant = $this->Merchants->patchEntity($merchant, $this->request->data, [
            'associated' => ['Users']
        ]);
        if ($this->Merchants->saveAll($merchant)) {
            $this->Flash->success('The merchant has been saved.');
            return $this->redirect(['action' => 'index']);
        } else {
            $this->Flash->error('The merchant could not be saved. Please, try again.');
        }
    }
    $users = $this->Merchants->Users->find('list', ['limit' => 200]);
    $merchantTypes = $this->Merchants->MerchantTypes->find('list', ['limit' => 200]);
    $this->set(compact('merchant', 'users', 'merchantTypes'));
}

非常感谢您的帮助。感谢。

2 个答案:

答案 0 :(得分:2)

我认为您的问题是您的字段未被关联名称的缩写较低版本命名。

而不是放:

echo $this->Form->input('User.username')

会导致:

<input type="text" name="User[username]" >

你应该试着把东西放在:

echo $this->Form->input('user.username');

会导致:

<input type="text" name="user[username]" >

我希望它会有用:)

PS:对不起,如果有任何语法错误,但英语不是我的母语;)

答案 1 :(得分:0)

请按照保存数据的文档进行操作:

http://book.cakephp.org/3.0/en/orm/saving-data.html

如果您来自2.x,请阅读ORM迁移指南,它应该回答您的大部分问题:

http://book.cakephp.org/3.0/en/appendices/orm-migration.html