【问题标题】:Redirect back with 'select' values in Laravel 5在 Laravel 5 中使用“选择”值重定向回来
【发布时间】:2017-02-03 01:21:47
【问题描述】:

我搜索了很多,但没有找到任何解决方案。我的 HTML 表单中有一些 select 框,在重定向回输入验证后,我需要保留旧值。

这是我在控制器中的重定向代码

redirect()->back()->withInput()->withErrors($validator->messages());

我尝试过使用value={{old('somefieldname')}} 但它只适用于输入和文本区域。

PS:我还需要在multiple="multiple" select 中设置old 值。

任何帮助将不胜感激。

【问题讨论】:

    标签: php laravel validation laravel-5


    【解决方案1】:

    在 select 中,当 option=value 等于 old 时,您必须放置 selected=selected。也请考虑使用laravelcollective/html 包。你可以这样使用它:

    {!! Form::select('type', ['' => 'Types'] + $options) !!}
    

    并且在验证失败后重定向回来后,包会自动处理旧值。

    【讨论】:

      【解决方案2】:

      如果您在循环中进行迭代,那么直接 old 将不适用于选择选项

      例如,如果您的刀片文件中有类似的内容 那么你可以试试这个在重定向后选择当前选项

      <select id="someId" name="someName">
      
       @foreach($someData as $data)
        <option value="{{ $data->id }}" @if(old('someName') == $data->id) selected @endif> {{ $data->name }} </option>
       @endforeach
      
      </select>
      

      然后它将选择您当前的选项。

      如果这是您的问题,那么它可能会有所帮助。

      【讨论】:

      • 很高兴帮助@NiteshVerma :)
      • 你能告诉多选它是如何工作的吗?因为old中会有一个数组
      • 如何在选择框中选择多选?请解释问题。
      • 别担心,我已经做到了。如果您在select 中定义多个属性,例如multiple="multiple",您可以从 select 中选择多个选项,结果将是数组。
      猜你喜欢
      • 2015-12-18
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 2020-04-24
      • 2020-09-21
      • 2016-02-16
      • 2015-09-13
      • 1970-01-01
      相关资源
      最近更新 更多