【发布时间】:2015-03-26 15:49:59
【问题描述】:
我在使用 Eloquent 关系检索特定结果集时遇到问题。
型号:
Application(table: application) [id, title, active]
问题(表:问题)[id、application_id、question_text、helper_text、question_type]
QuestionType(table: question_type) [id, type]
粗体 = 主键,斜体 = 外键
关系:
一个Application 有多个Questions。
许多Questions 可以属于一个Application。
一个Question 有一个QuestionType(由 question_type FK 引用)
一个QuestionType 可以属于多个Questions(通过引用它的id 作为question_type)
QuestionType 是一个静态表,永远不会添加或删除值,但类型属性可以更改。
我希望能够做这样的事情:
$application = Application:find($application_id);
$questions = $application->questions()->get();
并将 question_type 替换为从 QuestionType 模型中提取的适当类型。
我浏览了 Laravel 和 Eloquent 文档,在 IRC 上提问,并浏览了其他 StackOverflow 文章,但找不到有用的答案。我认为让我失望的是我的非常规外键question_type,在我的Question 表中。我有一次把它搞定了,异常 question_type 被替换为 QuestionType 数组(这不起作用)。
【问题讨论】:
-
你可以打电话给你的领域
question_type_id吗?这可能会消除一些混乱并使事情更自然地工作。 -
我可以,但问题是我需要该 question_type 用于其他目的(主要用于决策逻辑)。是否可以将“类型”附加到问题结果上而不是用它替换 question_type?
标签: php mysql laravel eloquent relationships