как получить проверенное значение по умолчанию, используя сжатые данные

#php #laravel #laravel-blade #explode #laravel-8

#php #laravel #laravel-blade #взорвать #laravel-8

Вопрос:

В форме create post я сохраняю данные в базе данных, используя функцию implode, потому что данные были в массиве

 $this->posts->optional_info = implode(" ",$input['optional_info']);
 

теперь в форме редактирования я хочу, чтобы данные, хранящиеся в базе данных, были проверены по умолчанию в представлении

итак, я пытаюсь, как

 <div class="row">
         @foreach($customArray['optional'] as $key => $value)
         <div class="col-md-4 pl-1 pr-1 col-6">
          <div class="cstm-check pos-rel">
              <input type="checkbox" name="optional_info[]" 
             {{old('optional_info[]',explode(" ",$posts->optional_info)) == $key ? 'checked' : ''}}  
               value="{{$value}}" id="{{ __($key) }}" />
               <label for="{{ __($key) }}" class="">{{ __($value) }}</label>
          </div>
         </div>
         @endforeach
 

где $CustomArray[‘необязательно’] содержит

 'optional'=>[
        'FLOATER'=>'Floater', 
        'DROP_IN'=>'Drop In', 
        'CUTBACK'=>'Cutback', 
        'AIR'=>'Air', 
        'BARREL_ROLL'=>'Barrel Roll', 
        'SNAP'=>'Snap',
        '360'=>'360',
        'WIPEOUT'=>'Wipeout',
    ],
 

я просто хочу, чтобы значения взрывались и сопоставлялись с каждым ключом и проверялись при значении true. пожалуйста, помогите мне. заранее спасибо

Ответ №1:

Мой подход был бы примерно таким:

 <div class="row">
    @foreach($customArray['optional'] as $key => $value)
    <div class="col-md-4 pl-1 pr-1 col-6">
        <div class="cstm-check pos-rel">
            <input type="checkbox" name="optional_info[]" 
            {{ (in_array($key, old('optional_info[]', explode(" ",$posts->optional_info))) ? 'checked' : '' }}
            value="{{$value}}" id="{{ __($key) }}" />
            <label for="{{ __($key) }}" class="">{{ __($value) }}</label>
        </div>
    </div>
    @endforeach
</div>