Laravel 5下拉框在验证失败时不会传回旧值

时间:2015-05-28 00:43:42

标签: laravel laravel-5 laravel-validation

我有一个简单的问题。我在注册表单中为性别选择做了一个下拉框,如下所示:

<div class="col-md-6 col-sm-6">
    <select name="gender" value="{{ old('gender') }}" class="form-control">
        <option value=null>------ Gender ------</option>
        <option value="male">Male</option>
        <option value="female">Female</option>
    </select>
    {!! MessagerService::setInlineError($errors->first('gender')) !!}
</div>

所以我所做的是验证失败后,所选的性别不会传回表单。我做错了什么想法?谢谢。

1 个答案:

答案 0 :(得分:1)

您不必编写纯HTML。您可以利用Laravel Form Builder。在Laravel 5中,它默认不捆绑,就像它在4.2中一样,所以首先你需要它。转到项目根目录并在终端写入:

$doc = new DOMDocument;
@$doc->loadHTML($html); // load the HTML data

$links = $xpath->query('//a[contains(., "Find Tickets")]');

foreach ($links as $link) {
   $results[] = $link->getAttribute('href');
}

print_r($results);

然后转到composer require "illuminate/html":"5.0.*" 并在config/app.php添加

providers

您还可以在'Illuminate\Html\HtmlServiceProvider', 下注册这两个外墙:

aliases

之后,您可以使用'Form'=> 'Illuminate\Html\FormFacade', 'HTML'=> 'Illuminate\Html\HtmlFacade', facade来创建您的选择,只需一行简单的代码来处理旧的输入值:

Form

就这么简单。您可以查看documentation以了解{!! Form::select('gender', ['' => '--Gender--', 'male' => 'Male', 'female' => 'Female']) !!} 外观的更多有用方法。