3
好吧,所以我想執行一個mysql查詢來加入表並返回結果。laravel 5查詢生成器錯誤「必須是類型數組,對象給出」
所以在我的控制,我有serviceIDs的當的print_r()看起來像這樣的數組:
Array
(
[0] => 50707
[1] => 50709
)
該數組的名稱爲$ serviceIDS
好吧,那麼我現在調用一個函數從我的模特之一。這是一個範圍,如下圖所示:
$services = Services::getWatchListInfo($serviceIDS)->get();
這是在我的模型範圍功能:
public function scopegetWatchListInfo($serviceIDS){
$services = DB::table('services')
->join('reviews','services.serviceID','=','reviews.serviceID')
->select('services.name','services.type','services.review_count_approved','reviews.escalate','reviews.average_rating')
->whereIn('serviceID',$serviceIDS);
return $services;
}
好了,所以這應該讓來自我的服務和審查表結果,其中服務ID是在陣列。
相反,我得到以下錯誤。
Argument 1 passed to Illuminate\Database\Grammar::parameterize() must be of the type array, object given, called in /Users/user/sites/informatics-2/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php on line 311 and defined
任何想法?
非常感謝這工作!然而,我得到的結果實際上是6,當只有2個ID進去。所以它帶回相同的結果3次,這是奇怪的 –
我認爲這可能是由於'join()'語句。您可以通過將' - > get()'更改爲' - > toSql()'來檢查生成的SQL查詢。如果您將該SQL放入PHPMyAdmin(或您正在使用的任何SQL應用程序)中,您將能夠檢查正在生成的SQL,並確定如何編寫正確的'JOIN'語句。 –
謝謝,它在phpmyadmin中也是如此,但我不知道爲什麼啊哈:( –