首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Nette中配置外键?

如何在Nette中配置外键?
EN

Stack Overflow用户
提问于 2017-04-09 13:55:16
回答 1查看 208关注 0票数 0

我已经阅读了一段时间的Nette教程,用于数据库选择等,但我仍然不明白,Nette如何知道,什么是外键和什么不是。我需要给它下定义吗?如果是这样的话,是怎么做的?文件里什么都没有。

根据这个文档,我不需要定义外键。由于我已经习惯了Java,这对我来说听起来有点奇怪。

Nette甚至会生成数据库吗?(到目前为止,我不这么认为)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-09 14:33:27

Nette\Database不生成数据库,它检查数据库并发现外键参见ActiveRow文档,特别是M:1关系的描述

有一个关系是一个常见的用例。书只有一个作者。书上只有一个翻译。相关行的获取主要是通过ref()方法实现的。Ref()方法接受两个参数:目标表名称和源连接列。见示例: $book = $context->table('book')->get(1);$book->ref('author','author_id'); … 这一切都很好,但有点麻烦,你不觉得吗?数据库已经包含了外键定义,那么为什么不自动使用它们呢?我们就这么做吧! 如果调用不存在的属性,则ActiveRow尝试将调用的属性名称解析为“有一个”关系。强调获取该属性的方法与只使用一个参数调用ref()方法相同。我们将把唯一的论点称为关键。密钥将被解析为特定的外键关系。传递的键与行列匹配,如果匹配,则使用匹配列上定义的外键从相关目标表获取数据。

您可以在源代码中看到它是如何在内部工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43307533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档