如何在Blade模板中使用函数old()来获取数组的末尾元素
P粉309989673
P粉309989673 2023-09-02 22:00:20
0
2
562
<p>在不知道元素数量的情况下,如何在old()函数内获取数组'g3'的最后一个元素。</p> <pre class="brush:php;toolbar:false;"><select name="g3[]" multiple="multiple"> <option value="1" @if (old('g3')=="1" ) {{ 'selected' }} @endif >lifting</option> <option value="2" @if (old('g3')=="2" ) {{ 'selected' }} @endif >jogging</option> <option value="3" @if (old('g3')=="3" ) {{ 'selected' }} @endif >sleeping</option> </select> <div {!! old('g3') != 3 ? '':' style="display: none"' !!}> Not to be seen</div></pre> <p>如何在div内获取被选中的项目。</p>
P粉309989673
P粉309989673

全部回复(2)
P粉276876663

如在评论中由@apokryfos提到:

\Illuminate\Support\Arr::last(old('g3') ?? []) != 3

补充说明

根据您的评论,下面的演示应该足够:

<div>
    @php($data = [1 => "举重", 2 => "慢跑", 3 => "睡觉"])

    <select name="g3[]" id="g3" multiple>
        @foreach($data as $id => $v)
            <option value="{{$id}}" {{in_array($id, old('g3') ?? []) ? 'selected' : ''}}>
                {{$v}}
            </option>
        @endforeach
    </select>

    <div style="display: {{!in_array(array_flip($data)["睡觉"], old('g3') ?? []) ? 'none': ''}};"> 不可见</div>
</div>
P粉596191963

如果你的old值是array,你可以使用in_array代替。
检查old('g3')是否存在,然后检查value是否在数组old('g3')

<select name="g3[]" multiple="multiple">
   <option value="1" @if (old('g3') && in_array('1', old('g3'))) selected @endif >lifting</option>
   <option value="2" @if (old('g3') && in_array('2', old('g3'))) selected @endif >jogging</option>
   <option value="3" @if (old('g3') && in_array('3', old('g3'))) selected @endif >sleeping</option>  
</select>

如何获取数组的最后一个元素,你可以尝试这样做
array_values()函数返回一个包含数组所有值的数组。
提示:返回的数组将具有数字键,从0开始,逐渐递增。

@if (old('g3'))
   @php
      $size = count(array_values(old('g3')));
      $lastElement = old('g3')[$size - 1];
   @endphp
   // 做一些操作
@endif
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板