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