首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传递给Illuminate\Database\Grammar::parameterize()的参数%1必须是数组类型,给定的对象

传递给Illuminate\Database\Grammar::parameterize()的参数%1必须是数组类型,给定的对象
EN

Stack Overflow用户
提问于 2017-12-23 19:50:30
回答 2查看 9.9K关注 0票数 3

我正在使用Laravel 5.5,并且我已经翻译了以下查询:

代码语言:javascript
复制
        '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'

变成雄辩:

代码语言:javascript
复制
    $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行中:

代码语言:javascript
复制
  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

我的猜测是我的雄辩的查询是错误的?有什么建议吗?有什么问题吗?

感谢您的回复!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-23 21:34:25

代码语言:javascript
复制
 $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();

我想一切都会好的。

票数 2
EN

Stack Overflow用户

发布于 2021-02-16 07:32:01

在我的例子中,这是因为我在做Event::get(44)而不是Event::find(44)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47952254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档