@php
- $is_null=null===old(square_brackets_to_dots($field['name'])) && (isset($field['value']) && null===$field['value']);
+ $o=$field['value'] ?? old(square_brackets_to_dots($field['name']));
+
+ $is_null=null===$o;
+ if(!function_exists('select2_from_array_selected')){
+ function select2_from_array_selected($key,$o){
+ if(null===$o){
+ return false;
+ }
+ if(!is_array($o)){
+ return $o==$key;
+ }
+ if(is_array($o)){
+ return in_array($key,$o);
+ }
+ return false;
+ }
+ }
@endphp
<!-- select2 from array -->
@if (count($field['options']))
@foreach ($field['options'] as $key => $value)
- @if(
- !$is_null && (
- (old(square_brackets_to_dots($field['name'])) && (
- $key == old(square_brackets_to_dots($field['name'])) ||
- (is_array(old(square_brackets_to_dots($field['name']))) &&
- in_array($key, old(square_brackets_to_dots($field['name'])))))) ||
- (null === old(square_brackets_to_dots($field['name'])) &&
- ((isset($field['value']) && (
- ($key == $field['value'] && null !== $field['value'] )|| (
- is_array($field['value']) &&
- in_array($key, $field['value'])
- )
- )) ||
- (isset($field['default']) &&
- ($key == $field['default'] || (
- is_array($field['default']) &&
- in_array($key, $field['default'])
- )
- )
- ))
- )))
+ @php
+ $selected=select2_from_array_selected($key,$o);
+ @endphp
+ @if($selected)
<option value="{{ $key }}" selected>{{ $value }}</option>
@else
<option value="{{ $key }}">{{ $value }}</option>