
En esta ocasión vamos a actualizar nuestros posts, para ello tenemos dos opciones, duplicar el formulario de crear posts o utilizar form model, nosotros vamos a utilizar la segunda, así podremos utilizar el formulario de crear posts también para hacer la edición, sólo tendremos que hacer algunos cambios.
Lo primero que debemos hacer para darle un poco de sentido a todo es cambiar el nombre del archivo create.blade.php alojado en resources/views/posts por createUpdate.blade.php, ahora abre el archivo y reemplaza el tag form por lo siguiente.
@if(isset($post)) {!! Form::model($post, ['route' => ['post.update', $post->id], 'method' => 'patch']) !!} @else {!! Form::open(['route' => 'post.store']) !!} @endif
Ahora abre el archivo PostController y primero modifica el nombre de la vista del método create.
/** * Show the form for creating a new resource. * * @return Response */ public function create() { return view("posts.createUpdate"); }
/** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { return view('posts.createUpdate')->with('post', \App\Post::find($id)); }
/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function update($id, PostForm $postForm) { $post = \App\Post::find($id); $post->title = \Request::input('title'); $post->body = \Request::input('body'); $post->save(); return redirect()->route('post.edit', ['post' => $id])->with('message', 'Post updated'); }
<div class="row">
<div class="col-md-3 pull-right">
{!! Html::link(route('post.create'), 'Crear', array('class' => 'btn btn-info btn-md pull-right')) !!}
</div>
/*....................*/<div class="row">
<div class="col-md-3 pull-right">
{!! Html::link(route('post.create'), 'Crear', array('class' => 'btn btn-info btn-md pull-right')) !!}
</div>
/*....................*/
