I am new to Symfony 2.7 and have limited knowledge of php.
I have a system whereby posts are created via the admin resulting in new pages.
I am trying to use these to create an index page showing all the current posts. Eventually this would probably just show title perhaps and i should be able to adjust the view but for now i'm trying to work out how do i get the posts to be got via the controller?
I've looked at the Symfony demo application but can't see how to adjust this to what i have - the annotation routing confuses me a little also as i am using YAML.
Controller
class PostController extends Controller
{
/**
* @param Post $post
*
* @return Response
*
* @ParamConverter("post", options={"mapping": {"name": "name"}})
*/
public function viewAction(Post $post)
{
return $this->render('MyBundle:Post:view.html.twig', ['post' => $post]);
}
}
Routing
my_results:
path: /results/{name}
methods: [ GET ]
defaults: { _controller: MyBundle:Post:view }
requirements:
name: \w+
So far I have add the extra routing...
my_indexresults:
path: /results
methods: [ GET ]
defaults: { _controller: MyBundle:Post:index }
requirements:
name: \w+
..and i have added to the controller...
public function indexAction()
{
$post = $this->getDoctrine()->getRepository('MyBundle:Post')->findAll();
return $this->render('MyBundle:Post:index.html.twig', array('post' => $post));
}
Below is the relevant parts of index.html.twig , containing what I would use a loop of the posts, if i could tie up with the controller
<!DOCTYPE html>
<html lang="en">
<head>
<title="Posts Index">
</head>
<body>
{% block content %}
{% for post in posts %}
<div id="{{ post }}">{{ post }}</div>
{% endfor %}
{% endblock %}
</body>
</html>
..but can't work out how to pull in the posts. If it's possible to tell without looking at the entity, how could I do this please?