gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:10:18 25 4
gpt4 key购买 nike

我正在使用 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'

变成 Eloquent :

    $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

我猜我的 Eloquent 查询是错误的?有什么建议吗?

感谢您的回复!

最佳答案

 $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();

我想应该没问题。

关于laravel - 传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47952254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com