代码之家  ›  专栏  ›  技术社区  ›  Niamul

从数组中获取任意项,其中在Laravel 5.3中[duplicate]

  •  -1
  • Niamul  · 技术社区  · 7 年前

    我正在使用laravel 5.3,并尝试使用多个where和where函数构建一个查询。这是我的代码:

    $posts_id = "1,3,4";  //from my query
    $results = Post::select('*');   
    $results->whereIn('posts_id', [$posts_id]);
    $resutls->get();
    

    我的数据库中有1个帖子的id为4,但我的查询没有返回任何内容。虽然我的帖子ID中有4个 $posts_id = "1,3,4"; .

    需要帮助,从任何id获取帖子,我已经在我的 $posts_id 变量

    1 回复  |  直到 7 年前
        1
  •  2
  •   Eduardo Pacios    7 年前

    您需要将数组传递给where()方法:

    $results = Post::whereIn('posts_id', explode(',' $posts_id))->get();
    

    注意,您不需要在单独的一行中调用每个方法。你可以把它们锁起来。此外,不需要选择(“*”)。

    您可以按任何方式创建数组,无需使用explode()。

    $ids = [1, 2, 3];
    $results = Post::whereIn('posts_id', $ids)->get();
    

    在进行查询之前,最好检查数组是否为空。