簡體   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