TRY AND ERROR

気になったこと、勉強したこと、その他雑記など色々メモしていきます。。Sometimes these posts will be written in English.,

CakePHP3でPC/スマホのviewを切り替える方法

CakePHP3を使ってて一番助かったなあと思う機能が、PC/スマホのview切り替えです。

実装はめちゃくちゃ簡単。

・PC版のviewは通常通りsrc/Templateに作成します。
・plugins直下にスマホ用のディレクトリを作成(今回は「Sp」というディレクトリを作成)
・plugins/Sp/src/Template/を作成し、PC版と同じディレクトリ構造でスマホ用のviewを作る。
・コントローラは共通でOKで、AppControllerのbeforeRenderに切り替え処理を書く
※plugins/Sp/Template内にコントローラのアクションに紐づくスマホ用のveiwがない場合は、通常のsrc/Template内のPC版viewが読み込まれる。

public function beforeRender(Event $event) {
        // ----- 処理 -----

        // PC/スマホのview切り替え
        if ($this->request->isMobile()) {
                // plugins/Sp/Template内のviewが読み込まれる
                $this->viewBuilder()->theme('Sp');
        }
}


めっちゃラクw