CakePHP3.8で独自にlayoutを作成する

スポンサーリンク

CakePHPをインストールするとLayoutフォルダの中にdefault.ctpが作られていると思います。

レイアウト(Layout)はビューのテンプレートのような役割を持っており、他のビューパーツ(テンプレートやレイアウト)の呼び元となります。

このレイアウトを独自に作成しdefault.ctpの代わりに呼び出すには、下記のようにAppControler.phpに記述してみてはいかがでしょうか?

他のやり方もあると思います。


class AppController extends Controller
{
    public function initialize()
    {
        parent::initialize();

        $this->viewBuilder()->setlayout('layout.ctp'); ☜ここに一行記述

        $this->loadComponent('RequestHandler', [
            'enableBeforeRedirect' => false,
        ]);
        $this->loadComponent('Flash');
    }
}

ちなみに同じ3系であってもマイナーバージョンごとに呼び出し方が違うとのことでした。

       
 // あるいは 3.4 以前では以下
 $this->viewBuilder()->layout('default_small_ad');
 
 // あるいは 3.1 以前では以下
 $this->layout = 'default_small_ad';

引用元: https://book.cakephp.org/3/ja/views.html

おわり。

CakePHP
スポンサーリンク
エンジニアの日記

コメント