【问题标题】:Laravel old input of selected optionLaravel 所选选项的旧输入
【发布时间】:2019-12-07 15:29:50
【问题描述】:

我知道如何获取选择选项的旧输入,但我遇到了不同语言的问题。

六个选择选项中只有两个不使用@lang('') 进行翻译,对于这两个,old('input') 工作得很好。

这是我的选择列表的示例版本:

<select name="color" class="form-control form-control-sm">
   <option value="4c" selected {{ old('color') == "4c" ? "selected" : "" }}>4c</option>
   <option value="s/w" {{ old('color') == "@lang('s/w')" ? "selected" : "" }}>@lang('s/w')</option>
   <option value="3c" {{ old('color') == "3c" ? "selected" : "" }}>3c</option>
   <option value="s/w + rot" {{ old('color') == "@lang('s/w + rot')" ? "selected" : "" }}>@lang('s/w + rot')</option>
   <option value="s/w + gelb" {{ old('color') == "@lang('s/w + gelb')" ? "selected" : "" }}>@lang('s/w + gelb')</option>
   <option value="s/w + blau" {{ old('color') == "@lang('s/w + blau')" ? "selected" : "" }}>@lang('s/w + blau')</option>
</select>

如您所见,例如“4c”不会被翻译,因为它在英语中具有相同的含义,而“s/w”会在必要时被翻译成“b/w”。

如果我选择“3c”选项并且验证失败,我将选择“3c”作为选定选项。但是当我选择's/w'选项时,例如如果表单验证失败,则所选选项将再次为“4c”(标准)。

有没有办法解决这个问题?

【问题讨论】:

    标签: php laravel validation select input


    【解决方案1】:

    我相信当你在一个字符串中使用它时,刀片指令会作为一个字符串得到但它没有被评估,你是否尝试过这个:

    {{ old('color') == trans('s/w + rot') ? "selected" : "" }}
    

    【讨论】:

    • 这行得通,谢谢。我已经尝试过不加引号,但将其与 '@lang('..')' 一起使用,这引发了异常,您可能知道为什么吗?
    • 因为当你使用{{ }}时,其中的代码是PHP代码,而这个@lang是刀片指令,所以它不能在PHP中使用,但是当你添加引号时得到作为字符串,并没有得到翻译回来。 trans() 是获取翻译的 php 助手。
    • 这绝对有道理,我要谢谢你! :)
    • @ofmiceandmoon 如果解决了您的问题,请接受我朋友的回答 :)
    • 我会的,只需稍等片刻即可。_.
    猜你喜欢
    • 2015-05-22
    • 2022-11-24
    • 2015-06-22
    • 2020-06-04
    • 2023-03-19
    • 2023-03-13
    • 2014-08-13
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多