Listando posts
Tenemos dos vistas para mostrar los Posts, la lista de todos los posts y la vista del detalle. El método getList() retornara la vista index con la lista de todos los posts:
public function getList() { $data['posts'] = Post::where('status', 1)->get(); return view('index', $data); }
Lo único que tendremos que hacer en la vista es crear un bucle para que repita y lista todos los posts que existan:
{{-- Esta seccion sera un bucle de Posts (Los listará todos) --}} <section class="posts"> @foreach($posts as $post) <article class="post"> <div class="page-header"> <h3>{{ $post->title }}<br/> <small>{{ $post->publish_date }}</small></h3> </div> <p>{{ $post->resume }}</p> <a href="{{ url('/post/post/'.$post->id) }}" class="btn btn-primary">Ver post -></a> </article> @endforeach </section> {{-- END Esta seccion sera un bucle de Posts --}}
Con la ayuda de blade y del foreach de php creamos el bucle que nos imprimirà todos los posts con sus propiedades.
Detalle post
Una vez listados los post, hay un botón para acceder a ese post en concreto con url ‘/post/post/’.$post->id lo cual significa que tenemos que modificar el método getPost($id), para que si existe ese post, nos vaya a la vista detallada del post y nos muestre sus propiedades:
public function getPost($id) { $post = Post::find($id); if($post == null) return 'No existe el post'; else { $data['post'] = $post; return view('post', $data); } }
Modificamos la vista:
<section class="post"> <a href="{{ url('/post/list') }}" class="btn btn-primary"><- Listado</a> <article class="post"> <div class="page-header"> <h3>{{ $post->title }}<br/> <small>{{ $post->publish_date }}</small></h3> </div> <p> {{ $post->description }} </p> </article> </section>