繁体   English   中英

Laravel Eloquent - 还有更多

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM