为什么默认选择这个select2元素?

Why is this select2 element selected by default?

出于某种原因,我页面上的这个 select2 元素总是 selected。这是最小的版本:

    $(document).ready(function () {
        $('#animals').select2({
            'multiple': true,
        });

        $('#business_types').select2({
            'multiple': true,
        });
    });

        <div class="mt-2">
            {{ \Form::tLabel('', __('Animals'))}}
            <select name="animals[]" id="animals">
                @foreach($animals as $animal)
                    <option @if(in_array($animal->id, request()->animals ?? [])) selected @endif value="{{ $animal->id }}">{{ $animal->name }}</option>
                @endforeach
            </select>
        </div>
        <div class="mt-2">
            {{ \Form::tLabel('', __('Business types'))}}
            <select name="business_types[]" id="business_types">
                @foreach($business_types as $business_type)
                    <option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
                @endforeach
            </select>
        </div>

这个 PHP 产生这个:

<select name="business_types" id="business_types" data-select2-id="select2-data-business_types" multiple="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true">
<option value="1" data-select2-id="select2-data-5-kfne">Alimentation</option>
<option value="2">Animaleries</option>
...
</select>

我没有包含动物 select,但这是同一个问题:第一个元素是 selected。

我试过删除 PHP 但没有太大帮助...

有人知道如何解决这个问题吗?

我只需在 select 上设置“多个”值即可解决此问题。

            <select name="business_types[]" id="business_types" multiple="multiple">
                @foreach($business_types as $business_type)
                    <option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option>
                @endforeach
            </select>