Laravel老()不工作

时间:2017-01-15 09:36:51

标签: php laravel laravel-5

{!! Form::open(array('route' => 'posts.store', 'data-parsley-validate' => '')) !!}
    {{ Form::label('title', 'Title:') }}
    {{ Form::text('title',old('title'), array('class' => 'form-control', 'required' => '', 'maxlength' => '255')) }}
    {{ Form::label('slug', 'Slug:') }}
    {{ Form::text('slug',old('slug'), array('class' => 'form-control', 'required' => '', 'minlength' => '5', 'maxlength' => '255') ) }}
    {{ Form::label('category_id', 'Category:') }}
        <select class="form-control" name="category_id">
            @foreach($categories as $key=>$value)
                <option value='{{ $key }}'>{{ $value }}</option>
            @endforeach
        </select>  
    {{ Form::label('tags', 'Tags:') }}
        <select class="form-control select2-multi" name="tags[]" multiple="multiple">
            @foreach($tags as $tag)
                <option value='{{ $tag->id }}'>{{ $tag->name }}</option>
            @endforeach
        </select>
    {{ Form::label('body', "Post Body:") }}
    {{ Form::textarea('body',old('body'), array('class' => 'form-control','id'=>'editor1')) }}
    {{ Form::submit('Create Post', array('class' => 'btn btn-success btn-lg btn-block', 'style' => 'margin-top: 20px;')) }}
{!! Form::close() !!}

这是我的表单,但是当我提交并在服务器端验证并重定向到同一页面时,它不显示旧值。

控制器端

$this->validate($request,[
    'title'=>'required|max:255',
    'body'=>'required',
    'slug'=>'required|max:255|alpha_dash|min:5|unique:posts,slug',
    'category_id'=>'required|integer'
]);

$post=new Post;
$post->title=$request->title;
$post->slug=$request->slug;
$post->body=$request->body;
$dom = new Dom;
$dom->load($request->body);
$img = $dom->find('img')[0];
if(is_null($img))
    return redirect()->back()->withErrors('Add atleast one image in the post.');

问题的解决方案是什么?

1 个答案:

答案 0 :(得分:10)

使用->withInput()返回数据

    return redirect()->back()->withInput()->withErrors('Add atleast one image in the post.');

签入文档:https://laravel.com/docs/master/requests

中的Old inputs