【问题标题】:Eloquent Relationship without defining foreign key constraint没有定义外键约束的雄辩关系
【发布时间】:2021-08-05 21:11:27
【问题描述】:

我有一些关于 Laravel 中 Eloquent 关系的查询。

如果我在使用 laravel 定义的任何关系时没有指定外键,那么 laravel 会根据 laravel 8 文档中所写的父模型名称假设外键来使其工作。

所以我想问的是,如果 laravel 只是假设意味着 laravel 将使关系正常工作,但 laravel 不会像外键那样维护数据一致性?我说的对吗?

如果我是对的,那么解决方案是在使用关系时在迁移文件中显式定义外键?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我猜,你混合了两个东西,数据库的 DDL/模式和 ORM/数据库抽象层:

    • 数据库的 DDL/模式 定义了数据库本身 的结构和工作方式。在 Laravel 中,这可以通过 migrations 进行控制。
    • ORM/数据库抽象层通常不会改变架构,它只会改变CRUD(即DML而不是DDL)。在 Laravel 中,这可以通过 query builderEloquent(即 ORM)来完成。

    也就是说,前者创建外键约束,后者仅假设一个列名来放入它创建的SQL查询中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多