I am working with an api call where you are supposed to search for a 'survey' and sum up the different answers (located in other tabels). I am fairly new to eloquent and this is a little to complicated for me so I need some help.
There is 4 different tables with data, Survey, SurveyAnswerSets, Survey_X, Survey_XY.
What I want to do is search for surveys using a title, startDate and endDate. From the fetched surveys I need to fetch additional information from the 3 other tabels. I think I am supposed to use eager loading.
This is the datafields I am supposed to fetch:
"surveyId": Survey.surveyId
"title": Survey.title
"startDate": Survey.startDate
"endDate": Survey.endDate
"targetReplies": Survey.targetReplies
"repliesExposed": Number of rows in SurveyAnswerSets where surveyId = surveyId and isRefGroup = 0 and isComplete = 1
"repliesControl": Number of rows in from SurveyAnswerSets where surveyId = surveyId and isRefGroup = 1 and isComplete = 1
"repliesTotal": Number of rows in from SurveyAnswerSets where surveyId = surveyId and isComplete = 1
"useRefGroup": Survey.useRefGroup
"orderId": Survey.orderId
"surveyXIds": Survey_X where surveyId = surveyId
"originalXYIds": Survey_XY where surveyId = surveyId
The easy part of selecting the correct surveys I have done:
$columns = array('surveyId', 'title', 'startDate', 'endDate', 'isTemplate');
$surveys = Survey::notemplate()
->where('title', 'LIKE', "%$name%")
->where('startDate', '<=', Carbon::now()->toDateString())
->where('endDate', '>', Carbon::now()->toDateString())
->select($columns)
->get();
but this leaves the tricky parts where I need help or advice how to start.
答案 0 :(得分:1)
预先加载只是一种优化(防止许多SQL查询)。
您不需要编写更多查询:只需使用对象适当的方法。
User Name: <input required type="text" ng-model="uname" name="uname" id="uname" unique-field /><br/>
<span style="color:red" ng-show="form_add.uname.$dirty && form_add.uname.$invalid">
<span ng-show="form_add.uname.$error.required">User Name is required.</span>
<span ng-show="form_add.uname.$error.uniqueField">User Name already exists.</span>
</span>
这假设您正确配置了relationships