Laravel 传递给Illumb\Database\Grammar::parameterize()的参数1必须是给定对象的数组类型
我使用的是Laravel 传递给Illumb\Database\Grammar::parameterize()的参数1必须是给定对象的数组类型,laravel,laravel-5,eloquent,laravel-eloquent,Laravel,Laravel 5,Eloquent,Laravel Eloquent,我使用的是Laravel 5.5,我已经翻译了以下查询: 'SELECT * FROM instruments LEFT join financials on instruments.id=financials.instruments_id WHERE financials.id IN ( SELECT MAX(financials.id) FROM financials GROUP
Laravel 5.5
,我已经翻译了以下查询:
'SELECT *
FROM instruments
LEFT join financials on instruments.id=financials.instruments_id
WHERE financials.id IN
( SELECT MAX(financials.id)
FROM financials
GROUP BY financials.instruments_id )
ORDER BY instruments.id ASC'
变成雄辩的:
$overviewArray = DB::table('instruments')
->leftJoin('financials', 'instruments.id', '=', 'financials.instruments_id')
->whereIn('financials.id', DB::raw('SELECT MAX(financials.id)
FROM financials
GROUP BY financials.instruments_id )
ORDER BY instruments.id ASC'))->get()->toArray();
但是,我得到以下错误:
在Grammar.php第135行:
Type error: Argument 1 passed to Illuminate\Database\Grammar::parameterize() must be of the type array, object given, called
in C:\Users\admin\Desktop\Coding Projects\laravel_project\vendor\laravel\framework\src\Illuminate\Database\Query\Gramm
ars\Grammar.php on line 250
我猜我雄辩的提问是错的?有什么建议吗?有什么问题吗
谢谢你的回复
$overviewArray = DB::table('instruments')
->leftJoin('financials', 'instruments.id', '=', inancials.instruments_id')
->whereIn('financials.id', function($query){
$query->select(DB::raw('MAX(financials.id)'))->
from('financials')->
groupBy('financials.instruments_id');})
->orderBy('instruments.id')
->get()
->toArray();
我想没问题。在我的情况下,这是因为我在做
Event::get(44)
而不是Event::find(44)谢谢你的回答!然而,这并不能解决我的问题。我仍然会遇到相同的错误。@请再试一次,我做了一点更改。