[英]Laravel Eloquent - hasMany + more
我正在Laravel中创建一个Survey模块,其中包含hasMany('SurveyQuestion');
对象Survey
hasMany('SurveyQuestion');
(基本上是JOIN
survey.id = survey_questions.survey_id)。
但是,我想在所有调查中提出几个问题(survey_id = 0,与任何Survey
不对应)(即姓名,电子邮件等)。
是否可以通过修改hasMany关系来添加这2个问题(基本上WHERE survey_questions.survey_id = survey_id OR survey_questions.survey_id = 0
)?
拥有返回关系的函数,然后有另一个调用它的公共函数,并将额外的记录添加到集合中。
function surveyquestions() {
return $this->hasMany('SurveyQuestion');
}
function getPaddedSurveyQuestions() {
$padded = SurveyQuestions::getId0QuestionsHere();
return $this->surveyquestions()->merge($padded);
}
这是粗略的代码,因为您需要以更易于管理的方式找到您的id = 0 SurveyQuestions,并且您可能需要使用Collection-> prepend()而不是merge()来获取您想要的填充问题,但它可能会给你一些指导。
你可以在你的调查模型上尝试这样的事情:
public function questions() {
return $this->hasMany('SurveyQuestion')->orWhere('survey_questions.survey_id', '0');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.