在 Symfony 中创建帖子的索引页面

Creating index page of posts in Symfony

我是 Symfony 2.7 的新手,对 php 的了解有限。

我有一个系统,可以通过管理员创建帖子,从而产生新页面。

我正在尝试使用它们创建一个索引页面,显示所有当前帖子。最终这可能只会显示标题,我应该能够调整视图,但现在我正在尝试弄清楚如何通过控制器获取帖子?

我查看了 Symfony 演示应用程序,但看不到如何将其调整为我所拥有的 - 注释路由也让我有点困惑,因为我正在使用 YAML。

控制器

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]);
        }

}

路由

my_results:
    path: /results/{name}
    methods: [ GET ]
    defaults: { _controller: MyBundle:Post:view }
    requirements:
        name: \w+

到目前为止我已经添加了额外的路由...

my_indexresults:
path: /results
methods: [ GET ]
defaults: { _controller: MyBundle:Post:index }
requirements:
    name: \w+

..我已经添加到控制器...

public function indexAction()
{
    $post = $this->getDoctrine()->getRepository('MyBundle:Post')->findAll();

    return $this->render('MyBundle:Post:index.html.twig', array('post' => $post));
}

下面是 index.html.twig 的相关部分,包含我将使用的帖子循环,如果我可以与控制器联系起来的话

<!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>

..但不知道如何拉入帖子。如果不看实体也能分辨,请问我该怎么做?

我看到您的模板需要 'posts' 变量,但控制器发送 'post'。将 array('post' => $post)); 更改为 array('posts' => $post));

同时将模板中的 {{ post }} 更改为 {{ post.fieldName }}

此外,您的 'my_indexresults' 路线中不需要任何要求。