Symfony Best Practice - 実践編 Chapter5-

前回

hanahirodev.hatenablog.com

いじった結果は随時GitHubにあげていきます。


コントローラーのactionに渡されるパラメータをのぞく

まずはデバッグしてパラメータをのぞき見してみる。

// AppBundle\Controller\BlogController
public function indexAction($page)
    {
        dump($page);
        // ~
    }

てやると、

f:id:hiroyuki-hanai:20161112192145p:plain

こんな風に出る。 2ページ目はどうかな。

f:id:hiroyuki-hanai:20161112192330p:plain

え。。パラメーター文字列になるんだ。。ボタンで移動したときは文字列になって、トップページから1ページ目に遷移したときだけ数値になってるぽい。

ルーティングを見ると理解できる。デフォルトのルーティングはpageが数値で設定されていて、/pageがルーティングに入ってきたときは文字列にしている。

// AppBundle\Controller\BlogController 
    /**
     * @Route("/", defaults={"page": 1}, name="blog_index")
     * @Route("/page/{page}", requirements={"page": "[1-9]\d*"}, name="blog_index_paginated")
     * ~
     */
    public function indexAction($page)

気持ち悪いから、デフォルトも文字列にしておこうっと。

    /**
     * @Route("/", defaults={"page": "1"}, name="blog_index")
     ~
     */
    public function indexAction($page)

せっかくなので、本家にPRだしてみよう。マージされたら嬉しいな。

github.com