在 Laravel 中为现有的 InnoDB 关系设置 Eloquent 关系

Posted

技术标签:

【中文标题】在 Laravel 中为现有的 InnoDB 关系设置 Eloquent 关系【英文标题】:Setting up Eloquent relationships in Laravel for existing InnoDB relationships 【发布时间】:2012-09-27 15:53:21 【问题描述】:

我有一个初始迁移,它设置了两个具有关系 (innoDB) 的表(用户和项目)。

$table->foreign('user_id')->references('id')->on('users');

我设置了两个 Eloquent 模型,除了关系之外是空白的:

return $this->has_many('Project');

我是否一定需要雄辩地讲述模型数据库中的关系?我假设 Laravel 会从 Schema 中推断出一些全面的东西?我有什么遗漏吗?

【问题讨论】:

【参考方案1】:

你是对的,你必须在你的模型中定义关系。

Laravel 不分析模式,外键索引实际上不是必须使用的。 这种引导可以避免,但它也允许您使用非常规的表和列名称或使用 Fluent Query Builder 修改关系查询。

现在少一些魔法,多一些控制。

【讨论】:

谢谢,我就是这么想的。奇怪的是 - Eloquent 已经允许您进行更多控制,例如覆盖模型的默认表。

以上是关于在 Laravel 中为现有的 InnoDB 关系设置 Eloquent 关系的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 中使用 Mockery/phpUnit 时出错

在 Azure DevOps 管道中为 WebApp 创建部署槽

如何在 Laravel 中为嵌套关系设计表?

Laravel 在数据透视表中为克隆字段的一个关系 ID 插入多行

findViewById 为现有的包含布局返回 null

为现有的 Jersey 项目从 Netbeans JPA 添加休眠