2017-10-04 101 views
-1

我正在使用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中獲取帖子。

在此先感謝!

回答

1

你需要傳遞一個數組,其中()方法:

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

注意,你不需要調用每個方法在一個單獨的線。你可以鏈接它們。另外,select('*')不是必需的。

你可以用任何你想要的方式創建你的數組,不需要使用explode()。

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

在進行查詢之前檢查數組是否不爲空可能很好。