Laravel 5 Eloquent Realtionship有一个通过

GarryOne

我有以下数据库结构

products            quesionnaires           questionnaire_results
--------            --------------          ----------------------
id                  id                      id
questionnaire_id                            questionnaire_id
                                            product_id

问卷可用于多种产品,并将每种产品的结果分开存储在问卷调查表中。

一个产品只能有一个调查表,并且只能有一个调查表结果。

我需要一种从“产品模型”中获得其问卷调查结果的方法。

安迪·诺尔克(Andy Noelker)

如果您没有QuestionnaireResult模型,那么就没有直接的Eloquent关系,因为所有默认关系都依赖Eloquent模型的存在。然而,是把它当作一个做到这一点相当干净的方式多对多的关系Product,并Questionnaire和治疗questionnaire_results为您的数据透视表(甚至以为你真的知道,一个产品将只属于一个问卷)。

产品型号:

public function questionnaire() {
    return $this->belongsToMany('App\Questionnaire', 'questionnaire_results');
}

问卷模型:

public function products() {
    return $this->belongsToMany('App\Product', 'questionnaire_results');
}

由于此关系将返回一个集合,因此您需要使用[0]或使用first()方法来访问第一个数组

$product->questionnaire()->first();

但是,如果您确实有一个QuestionnaireResult模型,那么您将具有非常简单的一对一关系,而无需经历另一个模型。您有一些属于产品的问卷调查结果,而一个产品只能有一组问卷调查结果(根据您的发帖信息)。

产品型号:

public function questionnaireResult() {
    return $this->hasOne('App\QuestionnaireResult');
}

问卷结果模型:

public function product() {
    return $this->belongsTo('App\Product');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与Eloquent Laravel 5的交易

Foreach 插入 Laravel 5 Eloquent

Laravel 5 Eloquent AND 而不是 where

两个模型的通用模型 ID - Laravel 5 - Eloquent

Laravel Eloquent:通过具有多个关系的枢轴将表绑定到另一个表

Laravel 5 Eloquent where with multiple or in Clauses

Laravel 5 - 覆盖从 Eloquent 获取或选择

Laravel Eloquent通过ID删除

Laravel Blade:如何通过键从 Eloquent 集合中选择一个项目

Laravel Eloquent 通过检查另一个模型值从一个模型中选择数据

Laravel 5-如何通过查询生成器或Eloquent在两个以上的表/查询中使用联合?

在 Laravel 中获取具有另一个 Eloquent 查询 ID 的所有项目

如何在 Laravel 5 eloquent 上实现这一点

在 Laravel/Eloquent 中返回多个而不是一个

Laravel - Eloquent 只返回一个值

Laravel Eloquent Join 使用另一个表

Laravel Eloquent ownToMany 只获取一个结果

如何获得所有用户的订单使用Laravel 5 / Eloquent / query builder通过他们的评分

Laravel Eloquent-从只有一个孩子的父母那里获得结果

在Laravel Eloquent中,如何在一个“有”中检查多个关系的存在?

Laravel Eloquent Where、orWhere 和 Find 在同一个 eloquent 查询中的问题

Laravel 5模型:在Eloquent中不要包含某些列

将Laravel 5 Eloquent模型移到其自己的目录中

Laravel 5 + Eloquent toJson/toArray causes Strange Segmentation Faults

如何在 Laravel 5 中编写动态数量的 Eloquent 查询?

Laravel 5:Eloquent的查询集合的“ orWhere”方法的替代方法

Laravel 5 Eloquent 在关系中搜索不起作用

在Laravel 5中使用ORM Eloquent访问DBF表

laravel5 Eloquent 和查询构建器