我有以下数据库结构
products quesionnaires questionnaire_results
-------- -------------- ----------------------
id id id
questionnaire_id questionnaire_id
product_id
问卷可用于多种产品,并将每种产品的结果分开存储在问卷调查表中。
一个产品只能有一个调查表,并且只能有一个调查表结果。
我需要一种从“产品模型”中获得其问卷调查结果的方法。
如果您没有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] 删除。
我来说两句