Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉雷维尔口若悬河-有许多+;更多_Php_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php 拉雷维尔口若悬河-有许多+;更多

Php 拉雷维尔口若悬河-有许多+;更多,php,laravel,laravel-4,eloquent,Php,Laravel,Laravel 4,Eloquent,我正在Laravel中创建一个调查模块,其中包含对象Survey,这些对象有很多('SurveyQuestion')(基本上JOINing surveys.id=survey\u questions.survey\u id) 但是,我想在所有调查中问几个问题(调查id=0,与任何调查)即姓名、电子邮件等 是否可以装配hasMany关系来添加这两个问题(基本上是其中survey\u questions.survey\u id=survey\u id或survey\u questions.surve

我正在Laravel中创建一个调查模块,其中包含对象
Survey
,这些对象
有很多('SurveyQuestion')(基本上
JOIN
ing surveys.id=survey\u questions.survey\u id)

但是,我想在所有调查中问几个问题(调查id=0,与任何
调查
)即姓名、电子邮件等


是否可以装配hasMany关系来添加这两个问题(基本上是
其中survey\u questions.survey\u id=survey\u id或survey\u questions.survey\u id=0

您可以在您的调查模型上尝试以下内容:

public function questions() {
    return $this->hasMany('SurveyQuestion')->orWhere('survey_questions.survey_id', '0');
}

使用返回关系的函数,然后使用另一个调用该关系的公共函数,并将额外的记录预先添加到集合中

function surveyquestions() {
    return $this->hasMany('SurveyQuestion');
}

function getPaddedSurveyQuestions() {
     $padded = SurveyQuestions::getId0QuestionsHere();
     return $this->surveyquestions()->merge($padded);
}

这是一个粗略的代码,因为您需要以更易于管理的方式找到id=0的调查问题,您可能需要使用Collection->prepend()而不是merge()来将填充的问题放到您想要的地方,但它可能会给您一些方向。

为什么您的id为零?正如他所解释的,我相信它们是“全局的”这闻起来像是麻烦。既然你在每次调查中都会问这两个问题,为什么不把这两个问题当作其他问题来对待呢?或者将它们与用户结合起来,并将它们视为注册过程中发生的事情。