سؤال

Hi I have administration, where i edit record from database

    public function edit($id)
{
    $producer =  Producer::find($id);
    if (is_null($producer)) return Redirect::to('admin');

    return View::make('edit')->with('producer', $producer);
}

public function update()
{
    $validation = Producer::validate(Input::all());
    $id = Input::get('id');
    if ($validation->fails()) {
        return Redirect::to('/admin/edit/{$id}')->withErrors($validation);
    } else {

        Producer::find($id)->update(array(
            'title' => Input::get('title'),
            'body' => Input::get('body'),
            'url' => Input::get('url')
        ));

        return Redirect::to('/admin')->with('flash_message','Záznam editovaán');
    }


}

view for edit form

    @extends('layouts.layout')

@section('content')

<div class="container">
    <div class="col-md-8">
        <div class="row">
            <div class="col-md-8">
                @if($errors->has())
                    <ul>
                        {{ $errors->first('title', '<li>:message</li>') }}
                        {{ $errors->first('body', '<li>:message</li>') }}
                        {{ $errors->first('url', '<li>:message</li>') }}
                    </ul>
                @endif
                {{ Form::open(array('url' => '/admin/update')) }}
                <p>{{ Form::label('title', 'Název služby') }}</p>
                <p>{{ Form::text('title', $producer->title) }}</p>
                <p>{{ Form::label('body', 'Popis') }}</p>
                <p>{{ Form::textarea('body',$producer->body) }}</p>
                <p>{{ Form::label('url', 'Adresa webu') }}</p>
                <p>{{ Form::text('url', $producer->url) }}</p>
                <p>{{ Form::hidden('id', $producer->id) }}</p>
                <p>{{ Form::submit('Uložit',array('class' => 'btn btn-default')) }}</p>
                {{ Form::close() }}
                <hr>
            </div>
        </div>
    </div>
</div>
@stop

edit for record is function, but when validation faild redirect to edit form isnt function

route file

    Route::get('/', 'HomeController@showWelcome');

Route::get('/detail/{id}', 'HomeController@detail');

Route::get('/add', 'HomeController@add');

Route::post('/create', 'HomeController@create');

Route::get('login', 'SessionController@create');

Route::get('logout', 'SessionController@destroy');

Route::resource('sessions', 'SessionController');

Route::get('admin', 'AdminController@index')->before('auth');

Route::get('/admin/delete/{id}', 'AdminController@delete');

Route::get('/admin/edit/{id}', 'AdminController@edit');

Route::get('/admin/state/{id}', 'AdminController@state');

Route::get('/o_nas', 'AboutController@index');

Route::filter('pattern: admin/*', 'auth');

Route::post('/admin/update/', 'AdminController@update');

please help me with edit form

my validation rules

class Producer extends Eloquent {

protected $fillable = array('title','body','url');

public static $rules = array(
    'title'=>'required|min:5',
    'body'=>'required|min:10',
    'url' => 'required|url'
);

public static function validate($data) {
    return Validator::make($data, static::$rules);
}

}

هل كانت مفيدة؟

المحلول

in update function i change redirect from

return Redirect::to('/admin/edit/{$id}')->withErrors($validation);

to

return Redirect::back()->withErrors($validation);

and now is ok

I was thinking that both redirect are the redirecting to the same page

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top