我有一个基本的SQL请求,我想在Eloquent查询中'转换':
SELECT fmd.*, ff.iFormTypeCode
FROM FormMembersData fmd
INNER JOIN FormFields ff USING(iFormFieldCode)
WHERE fmd.iFormMemberCode = ".$iFormMemberCode." AND IF(ff.bLinkCurrentPeriod = 1, fmd.iPeriodCode = ".$iPeriodCode.", fmd.iPeriodCode = 0)
问题是,我不知道如何表示条件以插入正确的句号(0或变量1)。
目前,这几乎是我设法构建的唯一查询:
$aMemberData = Member::find($id)
->data()
->with('field')
->where('iPeriodCode', '=', $iPeriodCode)
->get();
答案 0 :(得分:0)
我最终做了:
Member::find($id)
->data()
->join('fields', 'fields.iFormFieldCode', '=', 'membersData.iFormFieldCode')
->whereRaw(\DB::raw('IF(fields.bLinkCurrentPeriod = 1, membersData.iPeriodCode = '.$iPeriodCode.', membersData.iPeriodCode = 0)'))
->get()
->toArray();