概念:我试图从9999和1111检索公共页面。见下文。 (ACF Fiorentia)
mysql查询:来自fb_likes
的SELECT *,其中page_id
IN(
SELECT page_id
FROM fb_likes
WHERE user_fb_id
= 9999)
和user_fb_id
= 1111
PHP代码:
$temp = FBLikes::where('user_fb_id','=','1111')->get(array('page_id'));
$tempArr = array();
for($i = 0; $i < count($temp); $i++){
$tempArr = array_add($tempArr, $i, $temp[$i]['page_id']);
}
print_r($tempArr);
$common_likes = FBlikes::whereIn('page_id', $tempArr)->where('user_fb_id','=', '9999')->get();
我尝试使用雄辩。它没有成功。
遵循的步骤:我首先执行了子查询。然后将数据转储到$ tempArr。然后我将数组$ tempArr传递给主查询。
结果:$ common_likes中没有保存任何内容。
你能帮我在单个Eloquent语句中编写mysql子查询吗?谢谢。
答案 0 :(得分:1)
您构建了无效的数组,而您不必这样做。尝试将$tempArr
替换为$temp
并删除所有此代码:
$tempArr = array();
for($i = 0; $i < count($temp); $i++){
$tempArr = array_add($tempArr, $i, $temp[$i]['page_id']);
}
print_r($tempArr);
你不需要它。