CakePHP で contoroller のアクション名に関係なく view を切り替える方法

コントローラーのアクション名に合わせて view を作ることで、そのアクションの際はその view を使うことになりますが、例えば news というアクションで、そのアクションにパラメータ無しでアクセスした際はニュース一覧を表示し、パラメータが入っていればパラメータを元にニュース記事だけのページを作りたい場合に困ります。

今までは view 側に対して現在のステップを変数で渡して HTML の出力を切り替えていましたが、内容が多くなると少し面倒なのでコントローラーの段階で使う view を render メソッドで切り替えましょう。

1
2
3
4
5
6
7
8
9
function news($id = null)
{
	if(is_null($id) {
		$this->set('data', 'ニュース一覧');
	} else {
		$this->set('data', 'ニュース個別記事');
		$this->render('news-single');
	}
}

コメント

コメントは受け付けていません。