cakephp3 コントローラを通した静的ページの追加の仕方

静的なページを追加したいケースは次の2種類に分けられる。
a.ヘッダやフッタは共通のものを使いコンテンツ部分のみを追加したい
b.1ページまるまる自由に作ったページを追加したい

aの場合で命名規則に従っている場合

class xxxController extends AppController
{
    public function index()
    {
    // コントローラには何も記述しなくてOK
    }
}

aの場合で命名規則に従っていない、または従っているけどあえて指定したい場合

class xxxController extends AppController
{
    public function index()
    {
        $this->render('/xxx/xxx');  // viewを指定する
    }
}

bの場合で命名規則に従っている場合

class xxxController extends AppController
{
    public function index()
    {
        $this->layout = false; // レイアウトを使用しないことを明示すればok
    }
}

bの場合で命名規則に従っていない場合

class xxxController extends AppController
{
    public function index()
    {
        $this->layout = false; // レイアウトを使用しないことを明示
        $this->render('/xxx/xxx');  // viewを指定する

        // または、renderの第2パラメータでレイアウトをfalseにしてもok
        $this->render('/xxx/xxx', false);
    }
}

つまり、$this->layoutでヘッダやフッタなどのレイアウトを使用するかを設定し、$this->render()でviewファイルを指定する。
$this->render()の第2パラメータでlayoutの指定も可能。

また、こんな使い方はあまりしないと思うが、レイアウトのみを使用しviewを使用しない場合

 class xxxController extends AppController
 {
     public function index()
     {
        $this->render(false);
     }
 }

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です