gpt4 book ai didi

php - Doctrine - 多个模型在另一个模型中引用相同的 id 字段

转载 作者:可可西里 更新时间:2023-11-01 12:22:08 26 4
gpt4 key购买 nike

我有一个文件模型,以及多个(目前有 3 个)不同的其他模型(文章、工作、事件),它们都可以有文件,存储在文件模型中。

问题是,当我通过 CLI 工具 (./doctrine build-all-reload) 生成表格时,我收到此错误消息:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot 
add or update a child row: a foreign key constraint fails
(`my_database/articles`, CONSTRAINT `articles_id_files_target_id`
FOREIGN KEY (`id`) REFERENCES `files` (`target_id`))

文件定义为(在此模型定义中未定义任何关系):

columns:
id:
primary: true
autoincrement: true
type: integer(4)
target_id: integer(4)
filename: string(255)
[...]

所有 4 个模型都有这个关系定义:

  relations:
Files:
type: many
class: File
local: id
foreign: target_id

这是 Doctrine 生成的 Php 代码 (BaseFile.php):

public function setUp()
{
parent::setUp();
$this->hasOne('Publication', array(
'local' => 'target_id',
'foreign' => 'id'));

$this->hasOne('Event', array(
'local' => 'target_id',
'foreign' => 'id'));

$this->hasOne('Article', array(
'local' => 'target_id',
'foreign' => 'id'));

$this->hasOne('Job', array(
'local' => 'target_id',
'foreign' => 'id'));
}

我理解为什么会发生这种情况(不能为多个表设置约束),但不知道如果没有多个文件表或关联表我该如何解决这个问题。

有没有办法告诉 Doctrine 它不应该在文件模型中创建关系?

有什么好主意吗?

最佳答案

有需要的可以试试,
关系:

Files:
type: many
class: File
local: target_id
foreign: id
Files2:
type: many
class: File
local: id
foreign: id

关于php - Doctrine - 多个模型在另一个模型中引用相同的 id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com