Laravel 8.54.0 + Livewire:错误 SQLSTATE[IMSSP] 尝试绑定参数编号 2101。SQL 服务器最多支持 2100 个参数

Laravel 8.54.0 + Livewire : Error SQLSTATE[IMSSP] Tried to bind parameter number 2101. SQL Server supports a maximum of 2100 parameters

我使用 Laravel Framework 8.54.0 和 livewire。 我想为我的下拉表单调用数据。但是我得到 sqlstate 错误。谁能帮我找到解决这个问题的方法?

型号:

class Item extends Model
{
    protected $table = 'item';
    protected $primaryKey = 'idx';
    public $timestamps = false;
    public const CREATED_AT = 'd_in';
    public const UPDATED_AT = 'd_edit';
    protected $connection = 'mysql2';
}

Livewire 控制器:

$this->produk_ictn_row = Item::get();

查看:

<select disabled name="formkodeproduk" id="formkodeproduk" class="form-control @error('formkodeproduk') is-invalid @enderror" wire:model="produk_code">
@foreach($produk_ictn_row as $produk_ictn_row)
    <option value="{{$produk_ictn_row->Kode}}">{{$produk_ictn_row->Kode}}</option>
@endforeach
</select>

它说你有超过 2100 条记录,所以查询应该在 where 查询中包含所有的记录!

好吧,在某些 sql 服务中,类似于 microsoft-sql sql 参数中的限制是 2100,因此您有 2 个选项:

首先你可以拆分你的查询来防止这个错误... 其次,您可以拆分 table 并进行一些并行查询。