Bien, básicamente crearemos un controlador más donde escribiremos el código de vista del Post.
<?phpnamespaceApp\Controllers;
useApp\Models\BlogPost;
classViewControllerextendsBaseController{
publicfunctiongetPost($id){
$blogPost = BlogPost::find($id);
return $this->render('view-post.twig', ['blogPost' => $blogPost]);
}
}
Para continuar, agregaremos una nueva vista…
{% extends "layouts/layout.twig" %}{% block content %}<center><h2>{{ blogPost.title }}</h2></center>{% if blogPost.img_url %}<p><imgsrc="{{ blogPost.img_url }}"width="100%"height="200px" /></p>{% endif %}<p>{{ blogPost.content }}</p><p>{{ blogPost.created_at }}</p>{% endblock %}
Por último, iremos a nuestro archivo donde tenemos las rutas y agregaremos una nueva
$router->controller('/', App\Controllers\ViewController::class);
Para explicar rapidamente, creamos un nuevo controlador más que todo por orden, ya que si quisiera una vista unitaria para cada usuario podemos agregar ahí la función.
En cuanto a la ruta, para accede a cada post quedaría por ejemplo
_**../public/post/{post_id}**_
Con eso agregarían al index en el listado de posts, cada uno con un link con su id correspondiente. 😃