从阵列中获取任何与Laravel 5.3中的项目

问题描述:

我正在使用laravel 5.3并试图用多个where和where函数构建一个查询。这里是我的代码:从阵列中获取任何与Laravel 5.3中的项目

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

有1杆,它具有4的ID在我的数据库,但我的查询不会返回任何东西。虽然我的帖子ID为$posts_id = "1,3,4";有4个。

需要帮助,可以从我的$posts_id变量中包含的任何id中获取帖子。

在此先感谢!

你需要传递一个数组,其中()方法:

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

注意,你不需要调用每个方法在一个单独的线。你可以链接它们。另外,select('*')不是必需的。

你可以用任何你想要的方式创建你的数组,不需要使用explode()。

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

在进行查询之前检查数组是否不为空可能很好。