php - 无法使用 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 提交新寄存器时,我希望此代码插入到两个表中。
解决方案
我发现我在命名数据库中的表以及主键命名模式时遇到了问题。只需将表的名称更新为“Fisicas”和“Pessoas”并将它们的主键和外键更改为 fisica_id 和 pessoa_id 并使用 bake 生成所有代码(例如 cake bake all pessoas)解决了问题(并生成了关联自动地)。
推荐阅读
- powershell - 尝试从 Powershell 模块调用 Http.Request 时,我得到 Method not found: 'FSharp.Data.HttpResponse FSharp.Data.Http.Request...'
- javascript - 使用 JavaScript 获取每个的值
- python - 将一条线上的所有点投影到另一条线上
- javascript - 从另一个日期减去一个日期的结果类型是什么?
- asp.net-core - 如何在 ASP.NET CORE 3.1 中重定向过滤器
- http - 在 Dart 中发出 HTTP GET 请求时出现 TypeError
- perl - 如何一次读取 10 个文件名,处理它们,然后读取下一个 10?
- r - 如何使用 R stringr 只留下基因名称?
- debugging - 在 Kubernetes 中调试 uWSGI
- debugging - 是否有调试在 Spritekit 中绘制 SKPhysicsBody 的功能