【问题标题】:Illuminate\Database\Query\Builder::cleanBindings(): Argument #1 ($bindings) must be of type arrayIlluminate\Database\Query\Builder::cleanBindings(): 参数 #1 ($bindings) 必须是数组类型
【发布时间】:2022-07-05 16:44:44
【问题描述】:

我的控制器

  $albums =  Album::join('tracks', 'albums.artist_id', '=', 'tracks.artist_id')
        ->where('albums.verified',1)->get();

我的刀

   @php
                    
                    
                    $names = DB::table('singers')->whereIn('id', $album->singers_id)->pluck('singers_name')->toArray();
    
@endphp
{{implode(' & ', $names)}}
</a></span>

error -laravel Illuminate\Database\Query\Builder::cleanBindings(): Argument #1 ($bindings) must be of type array, string given in laravel

如何解决这个错误

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    使用-&gt;whereIn() 时,您的第二个参数必须是一个数组。您当前正在传递字符串。此外,在刀片文件中执行数据库查询也不是一个好习惯。

    【讨论】:

      【解决方案2】:

      换行

       $names = DB::table('singers')->whereIn('id', $album->singers_id)->pluck('singers_name')->toArray();
      

       $names = DB::table('singers')->whereIn('id', [$album->singers_id])->pluck('singers_name')->toArray();
      

      whereIn 的值必须是 array,看起来你把 int 改为了

      【讨论】:

        猜你喜欢
        • 2020-10-29
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 2020-12-05
        • 2021-03-11
        • 1970-01-01
        • 2018-05-28
        • 1970-01-01
        相关资源
        最近更新 更多