Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel old() not working

{!! 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 is my form for something but however when i submit it and validate it on the server side and redirect to the same page , it doesn't display the old values.

Controller side

$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.');

What would be the solution of the problem?

like image 630
Tilak Raj Avatar asked Jan 15 '17 09:01

Tilak Raj


1 Answers

Use ->withInput() to go back with data

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

Check in docs : Old inputs in https://laravel.com/docs/master/requests

like image 98
Niklesh Raut Avatar answered Nov 15 '22 17:11

Niklesh Raut