在以下代码后运行var_dump($posts_id)
成功获取数据:
$posts_pins = DB::table('pins')
->join('posts', 'posts.id', '=', 'pins.post_id')
->where('pins.post_id', '=', $posts_id)
->get();
var_dump($posts_id);
exit();
输出:
object(Illuminate'Support'Collection)[199]
protected 'items' =>
array (size=24)
0 => int 62
1 => int 63
2 => int 64
3 => int 65
4 => int 66
当var_dump($posts_pins)
带回一个空数组时...有什么想法吗?
根据您的var_dump($posts_id)
,我会说您需要一个whereIn
子句,可能还需要一个toArray()
:
$posts_pins = DB::table('pins')
->join('posts', 'posts.id', '=', 'pins.post_id')
->whereIn('pins.post_id', $posts_id->toArray())
->get();
toArray()
可能不是必需的,我不确定whereIn
是否会自动转换它。
原因是您使用的是 post ID 数组,而 where()
方法只接受单个值进行比较,而 whereIn()
接受多个值。