在 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 创建部署槽