我想从表pasien_polis
中获取记录,其中polyclinic_id
与id
表的polyclinics
匹配。
我可以通过这样做来实现这一目标:
$polyclinic = Polyclinic::findOrFail($id);
$pasienpoli = Polyclinic::find($id)->PasienPoli;
我想要过滤的下一件事是created_at
记录,我只想获取今天创建的记录。
此查询效果很好:
$pasienpoli = DB::table('pasien_polis')->whereDate('created_at', '=', \Carbon\Carbon::today()->toDateString())->get();
当我想将这两个过滤器组合成一个where子句时,问题出现了。
我尝试过以下操作但返回NULL
:
$polyclinic = Polyclinic::findOrFail($id);
$match = Polyclinic::find($id)->PasienPoli;
$pasienpoli = DB::table('pasien_polis')->where([
['polyclinic_id', '=', '$match'],
['created_at', '=', \Carbon\Carbon::today()->toDateString()]
])->get();
请帮忙吗?
更新:
答案 0 :(得分:1)
我想你可以试试这个:
$pasienpoli = DB::table('pasien_polis')
->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id')
->where([
['pasien_polis.polyclinic_id', '=', $id],
['pasien_polis.created_at', '=', \Carbon\Carbon::today()->toDateString()]])
->get();
希望对你有所帮助!
答案 1 :(得分:0)
通过修改@AddWeb Solution Pvt
的答案解决(感谢一堆)
这是我最后的工作查询:
$pasienpoli = DB::table('pasien_polis')
->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id')
->where([
['pasien_polis.polyclinic_id', '=', $id],
[DB::raw('DATE(pasien_polis.created_at)'), '=', \Carbon\Carbon::today()->toDateString()]
])->get();