Symfony2「blogチュートリアル(5) ブログ閲覧ページの作成」

Symfony2「blogチュートリアル(5) ブログ閲覧ページの作成」

Symfony2での新しいページの作成手順

【ルーティングの作成】

URIとコントローラを関連付ける役割=ルーティング
Webリクエストを元に、定義されたルーティングの中からマッチするものを見つけ出し、そのコントローラのアクションを実行する

以下へ変更

$ vim app/config/routing.yml
blog:
resource: “@MyBlogBundle/Resources/config/routing.yml”
prefix: /blog

【ルーティング定義ファイルの変更】

上記のresource欄の定義ファイルを変更する

以下へ変更

$ vim src/My/BlogBundle/Resouces/config/routing.yml
blog_index:
pattern: /
defaults: { _controller: MyBlogBundle:Default:index }

blog_show:
pattern: /{id}/show
defaults: { _controller: MyBlogBundle:Default:show }

【コントローラの作成】

コントローラの作成
既に、DefaultControllerが作成されているので、ファイルを次のように変更する

$ vim src/My/BlogBundle/Controller/DefaultController.php
<?php
namespace My\BlogBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
public function indexAction()
{
$em = $this->getDoctrine()->getEntityManager();
$posts = $em->getRepository(‘MyBlogBundle:Post’)->findAll();
return $this->render(‘MyBlogBundle:Default:index.html.twig’, array(‘posts’ => $posts));
}

public function showAction($id)
{
    $em = $this->getDoctrine()->getEntityManager();
    $post = $em->find('MyBlogBundle:Post', $id);
    return $this->render('MyBlogBundle:Default:show.html.twig', array('post' => $post));
}

}

【参考】

ref. blogチュートリアル(5) ブログ閲覧ページの作成