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

Laravel中根据文本方向(dir)切换变量显示的问题求助

你的代码里有几个明显问题导致没达到预期效果,我给你逐个修正:

问题点说明

  • Blade条件语法错误:你在@if里嵌套了{{}},这不符合Blade语法规则——@if后直接写判断逻辑即可,不需要用{{}}包裹。另外要注意语言文件里的dir值是小写rtl还是大写RTL,判断时必须和语言文件里的取值完全一致。
  • else分支未处理语言切换:第二个select的else分支仍只输出$profession->title_ar,没有随语言切换显示对应字段,导致非选中选项不会跟着语言变化。
  • 重复的name属性:两个select都用了name="profession_id",表单提交时只会保留最后一个的值,属于冗余代码,只需保留一个处理好语言切换的select即可。

修正后的完整代码

<div class="col">
    <label for="profession_id"> <i class=""></i> {{ trans('front.p2_s_prochoose') }}</label>
    <select class="form-control" name="profession_id">
        <option value="">{{ trans('front.p2_s_allpro') }}</option>
        @foreach ($professions as $profession)
            @if ($profession->id == $profession_id)
                <option value="{{ $profession->id }}" selected>
                    @if(trans('front.lng') == 'rtl')
                        {{ $profession->title_ar }}
                    @else
                        {{ $profession->title }}
                    @endif
                </option>
            @else
                <option value="{{ $profession->id }}">
                    @if(trans('front.lng') == 'rtl')
                        {{ $profession->title_ar }}
                    @else
                        {{ $profession->title }}
                    @endif
                </option>
            @endif
        @endforeach
    </select>
</div>

进一步优化(简化代码)

可以把语言判断逻辑抽成变量,减少重复代码:

<div class="col">
    <label for="profession_id"> <i class=""></i> {{ trans('front.p2_s_prochoose') }}</label>
    <select class="form-control" name="profession_id">
        <option value="">{{ trans('front.p2_s_allpro') }}</option>
        @php
            $isRtl = trans('front.lng') == 'rtl';
        @endphp
        @foreach ($professions as $profession)
            <option value="{{ $profession->id }}" {{ $profession->id == $profession_id ? 'selected' : '' }}>
                {{ $isRtl ? $profession->title_ar : $profession->title }}
            </option>
        @endforeach
    </select>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:20:58