どーも!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)を作成します!
コメント