var dump在laravel中返回一个空数组

时间:2016-07-13 16:05:39

标签: php laravel

在以下代码成功运行数据后运行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)带回一个空数组......有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据您的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是否会自动转换它。

原因是您使用的是帖子ID数组,而where()方法仅接受单个值进行比较,whereIn()接受多个值。