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