Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在学说中建立关系_Php_Symfony1_Doctrine_Relational Database_Symfony 1.4 - Fatal编程技术网

Php 如何在学说中建立关系

Php 如何在学说中建立关系,php,symfony1,doctrine,relational-database,symfony-1.4,Php,Symfony1,Doctrine,Relational Database,Symfony 1.4,我通过Jobeet学习符号和教义。我想在JobeetJob中添加关系。 这是原创的: 我喜欢这样: JobeetCategory: actAs: { Timestampable: ~ } columns: name: { type: string(255), notnull: true, unique: true } JobeetCategorya: actAs: { Timestampable: ~ } columns: name: { type: stri

我通过Jobeet学习符号和教义。我想在JobeetJob中添加关系。 这是原创的:

我喜欢这样:

JobeetCategory:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true, unique: true }

JobeetCategorya:
  actAs: { Timestampable: ~ }
  columns:
    name: { type: string(255), notnull: true, unique: true }

JobeetJob:
  actAs: { Timestampable: ~ }
  columns:
    category_id:  { type: integer, notnull: true }
    categorya_id:  { type: integer, notnull: true }
    type:         { type: string(255) }
    (...)
    expires_at:   { type: timestamp, notnull: true }
  relations:
    JobeetCategory: { onDelete: CASCADE, local: category_id, foreign: id, foreignAlias: JobeetJobs }
    JobeetCategorya: { onDelete: CASCADE, local: categorya_id, foreign: id, foreignAlias: JobeetJobsa }
当我这样做时:

php symfony原则:构建——全部 --装载

我有错误

SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败(
jobeet
jobeet\u job
,约束
jobeet\u job\u categorya\u id\u jobeet\u id
外键(
categorya\u id
)引用
jobeet\u categorya
id
)删除时(级联)


为什么?

我认为问题是由该命令的
和加载部分引起的。当您以违反其外键关系(即,将子数据放在父数据之前)的顺序将装置加载到表中时,经常会出现此错误


如果这确实是你的问题,你可以在这里找到几个关于如何解决这个问题的线程。。。基本上,只需先构建(
build--all
),然后分批加载固定装置,以使它们尊重外键关系。

Patrick,你应该将你的标题表述为一个问题,因为Jobeet是symfony/doctrine,也把它放在那里。这有助于其他人发现他们可能回答的问题。只是一个建议:
如何在条令中创建一个关系?
当你遇到错误时,你会怎么做?我会:php symfony条令:build--all--load将其添加到你的问题中,比如:当我做
条令:build--all--and load
时,我会得到这个错误:(你的错误消息已经在问题中了,所以把它放在中间)好的:)你知道问题的解决方法吗?