猿问

无法使用 cakePHP 3.7 在多个表中保存数据

在将 Fisica 实体保存到数据库时,一直试图将数据保存到其他表中,因为我是 cakephp 的新手,现在似乎不可能,看过多个帖子、视频、文档,但似乎都没有。请有人帮我弄清楚这有什么问题。


我在实体之间的关系中发现了一个巨大的错误,现在它是这样的:Fisica属于Pessoa


FisicasTable.php 上的关联


$this->belongsTo('Pessoa')

        ->setForeignKey('id_pessoa')

        ->setJoinType('INNER')

        ->setClassName('Pessoas');

Fisicas 控制器


$fisica = $this->Fisicas->newEntity();

    if ($this->request->is('post')) {

        $fisica = $this->Fisicas->patchEntity($fisica, $this->request->getData(),['associated' => 'Pessoa']);

        if ($this->Fisicas->save($fisica))...

Fisica add.ctp


<legend><?= __('Add Fisica') ?></legend>

    <?php

        echo $this->Form->control('nr_cpf');

        echo $this->Form->control('dt_nascimento');

    ?>

    <legend><?= __('Add Pessoa') ?></legend>

    <?php

        echo $this->Form->control('pessoa.vr_nome');

        echo $this->Form->control('pessoa.nr_telefone');

        echo $this->Form->control('pessoa.vr_email');

    ?>

我收到以下错误: 错误


我希望在向 Fisica add.ctp 提交新寄存器时将这段代码插入到两个表中。


慕码人2483693
浏览 155回答 2
2回答

慕神8447489

我发现我在命名数据库中的表与主键命名模式相结合时遇到了问题。只需将表的名称更新为“Fisicas”和“Pessoas”并将它们的主键和外键更改为 fisica_id 和 pessoa_id 并生成所有带有 bake 的代码(例如,cake bake all pessoas)解决了问题(并生成了关联自动地)。
随时随地看视频慕课网APP
我要回答