Laravel компонентов со старой () вспомогательной функцией - PullRequest
0 голосов
/ 30 апреля 2020

Для моего удобства я создал компонент, в котором есть выпадающий список. Так что я могу использовать его везде, когда мне это нужно. Это компонент

 <h5>{{$title}}</h5>

    <select class="select" {{$required_district}} name="{{$select_district}}" id="{{$select_district}}">

        <option value="" selected> {{ __('Select the district') }} </option>

        @foreach($districts as $district)
            <option value="{{ $district->id }}"
               {{ old($select_district) && $district->id == old($select_district)  ? 'selected' : '' }}>
                {{ $district->name_en }}</option>
        @endforeach

    </select>

    @error($select_district)
    <label class="text-danger" style="">{{$message}}</label>
    @enderror

То, что я здесь делаю, это заголовок, идентификатор входного поля и другие вещи, которые динамически создаются с помощью @slot (), как показано ниже

    @component('destrict')

 @slot('title')
 Where do you want a job to be started
 @endslot

 @slot('select_district')
 selected_district
 @endslot

 @slot('required_district')
 required
 @endslot

    @endcomponent

Хорошо работают хорошо, но когда я отправляю форму, которая содержит этот компонент, когда проверка не проходит, тогда генерируется следующая ошибка:

array_key_exists (): первый аргумент должен быть либо строкой, либо целым числом

Проблема возникает с этой строкой, когда перенаправление формы обратно с ошибками проверки

 {{ old($select_district) && $district->id == old($select_district)  ? 'selected' : '' }}

Если я удаляю {{ old($select_district) }} или просто использую его как {{ old('name_here') }}, тогда все работает так, как должно быть . Но так как мне нужно использовать этот компонент на нескольких страницах, я бы хотел решить эту проблему. Так может кто-нибудь, пожалуйста, помогите мне исправить это.

1 Ответ

0 голосов
/ 30 апреля 2020

Это может быть сложно, но я смог исправить ошибку, как показано ниже

old(''.$select_district.'')

Спасибо

...