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>