【Laminas】ListControllerにdetailActionメソッドを追加する!

Laminas

どーも!marusukeです!

前回の記事(【Laminas】ルートを設定する!)で、投稿した記事のidで記事の詳細画面への可変するルートを設定しました。ここでは、そのルートに対応するアクションメソッドをListControllerに追記していきます!

以下のようにListController.phpにdetailActionメソッドを追記します。

ListController.php



class ListController extends AbstractActionController
{
    /* .その他のメソッドは割愛します. */

    /* .新たにdetailActionメソッドを追加します. */
    public function detailAction()
    {
       
        $id = $this->params()->fromRoute('id');  // ①

        return new ViewModel([
            'post' => $this->postRepository->findPost($id),  // ②
        ]);
    }
}

①と②を簡単に説明します。

①:$id = $this->params()->fromRoute(‘id’);

ブラウザからリクエストのあったルートのid部分を取得します。

例:https://ドメイン名/blog/id <= このid部分は数字になります。ここを取得します。

②:’post’ => $this->postRepository->findPost($id),

上記の①で取得したidと一致するpostデータを取得し、view側に渡します。

これでdetailActionメソッドが完成しました!

お疲れ様でした!

次は、detailActionメソッドからデータを受け取るview側(detail.phtml)を作成します!

コメント

タイトルとURLをコピーしました