You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blade模板中如何用old()获取数组g3最后一个元素及控制div显示

Laravel Blade 模板问题解决方案

问题1:获取数组g3的最后一个元素(未知元素数量时)

由于old('g3')返回的是对应多选框选中项的数组,直接用Laravel内置的last()辅助函数即可获取最后一个元素,同时给old()传入默认空数组,避免数组为空时触发错误:

{{ last(old('g3', [])) }}

如果需要先判断数组非空再取值,可添加条件判断:

@if(!empty(old('g3', [])))
    {{ last(old('g3')) }}
@endif

问题2:根据多选select选中项控制div显示状态

原代码存在两个问题:一是多选框的选中判断逻辑错误(直接将数组与字符串比较),二是div显示逻辑的判断方式错误。以下是修正后的完整代码:

修正多选框选中状态判断

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

通过in_array()判断当前option的值是否存在于old('g3')返回的数组中,以此确定选项是否选中。

修正div显示状态控制

当选中值为3的选项时隐藏div,否则显示:

<div @if(in_array('3', old('g3', []))) style="display: none" @endif> Not to be seen</div>

也可以用三元表达式的写法:

<div {!! in_array('3', old('g3', [])) ? 'style="display: none"' : '' !!}> Not to be seen</div>

内容的提问来源于stack exchange,提问作者Gabriel Rogath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:15:46