Laravel - SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败

莱夫

我正在 Laravel 中构建一个项目,试图在数据库中为我设置的模型内容保留一条记录,如下所示:

class Content extends Model
{
    /**
     * The attributes that are guarded by mass assignable.
     *
     * @var array
     */
    protected $guarded = [
        'id'
    ];

    public function contentType()
    {
        return $this->hasOne('App\ContentType');
    }
}

在我的控制器中,我首先将记录保存在 content_types 表中,如下所示:

    public function resolveType($type)
    {
        return ContentType::firstOrCreate(
          ['name' => $type,
          'slug' => str_slug($type, '-')]
        );
    }

然后我正在保存内容:

        Content::create([
          'ct_id' => $post->ID,
          'cms_id' => '',
          'title' => $post->post_title,
          'slug' => str_slug($post->post_title, '-'),
          'excerpt' => $post->post_excerpt,
          'body' => $this->formatBodyImages($post->post_content),
          'password' => $post->post_password,
          'parent_id' => $post->post_parent,
        ]);

ContentType 模型设置如下:

class ContentType extends Model
{
    /**
     * The attributes that are guarded by mass assignable.
     *
     * @var array
     */
    protected $guarded = [
        'id'
    ];

    public function contents()
    {
        return $this->hasMany('App\Content', 'ct_id');
    }
}

因此,当我尝试保留新的内容记录时,出现错误:

SQLSTATE[23000]: 完整性约束违规:1452 无法添加或更新子行:外键约束失败 ( middleton. contents, CONSTRAINT contents_ct_id_foreignFOREIGN KEY ( ct_id) REFERENCES content_types( id)) (SQL: insert into contents( cms_id, title, slug, excerpt, body, password, parent_id, updated_at, created_at)

阿列克谢·梅泽宁

看起来$post->ID是空的,并且ContentType在数据库中有指定的 ID。也许你正在尝试这样做?

'ct_id' => $post->id,

您可以$post使用dd($post)命令检查变量的内容

如果$post->id给你正确的值(它不是空的,它存在于表中),然后尝试使用fillablearray 和 using guardedarray.properties 的所有列出的属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

来自分类Dev

Laravel 6-SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

来自分类Dev

Laravel:SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败

来自分类Dev

Laravel SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

来自分类Dev

Laravel SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

来自分类Dev

SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行 (laravel5)

来自分类Dev

Laravel:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

Laravel 5:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

Laravel 种子:违反完整性约束:1452 无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

来自分类Dev

Laravel 5:SQLSTATE [23000]:违反完整性约束,外键约束失败

来自分类Dev

Laravel 5:SQLSTATE [23000]:违反完整性约束

来自分类Dev

违反完整性约束:1452 laravel

来自分类Dev

违反完整性约束:1452 laravel

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

来自分类Dev

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

来自分类Dev

Laravel SQLSTATE [23000]:违反完整性约束:1062复制条目

来自分类Dev

Laravel Eloquent SQLSTATE [23000]:违反完整性约束:1052列... where子句不明确

来自分类Dev

Laravel SQLSTATE [23000]:违反完整性约束:1062复制条目

来自分类Dev

PDO-致命错误:未捕获PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

来自分类Dev

SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行 [下拉列表的 0 值]

来自分类Dev

Laravel 8-由于违反完整性约束,可以删除但不能更新父行:外键约束失败

来自分类Dev

违反完整性约束:1452无法添加或更新子行:外部ke约束失败

Related 相关文章

  1. 1

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

  2. 2

    Laravel 6-SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  3. 3

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

  4. 4

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败-Laravel

  5. 5

    Laravel:SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败

  6. 6

    Laravel SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

  7. 7

    Laravel SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

  8. 8

    SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行 (laravel5)

  9. 9

    Laravel:违反完整性约束:1452无法添加或更新子行:外键约束失败

  10. 10

    Laravel 5:违反完整性约束:1452无法添加或更新子行:外键约束失败

  11. 11

    Laravel 种子:违反完整性约束:1452 无法添加或更新子行:外键约束失败

  12. 12

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  13. 13

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  14. 14

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  15. 15

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  16. 16

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败

  17. 17

    Laravel 5:SQLSTATE [23000]:违反完整性约束,外键约束失败

  18. 18

    Laravel 5:SQLSTATE [23000]:违反完整性约束

  19. 19

    违反完整性约束:1452 laravel

  20. 20

    违反完整性约束:1452 laravel

  21. 21

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

  22. 22

    SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行

  23. 23

    Laravel SQLSTATE [23000]:违反完整性约束:1062复制条目

  24. 24

    Laravel Eloquent SQLSTATE [23000]:违反完整性约束:1052列... where子句不明确

  25. 25

    Laravel SQLSTATE [23000]:违反完整性约束:1062复制条目

  26. 26

    PDO-致命错误:未捕获PDOException:SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:

  27. 27

    SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行 [下拉列表的 0 值]

  28. 28

    Laravel 8-由于违反完整性约束,可以删除但不能更新父行:外键约束失败

  29. 29

    违反完整性约束:1452无法添加或更新子行:外部ke约束失败

热门标签

归档