cakephp 中,使用不同的區塊

筆記一下

這是讓我苦惱很久的問題
解決方法其實很簡單
對cakephp的default.ctp來說,他是不可以更動的,要增加的區塊要用componet的方式增加
所以操作行為上,幾乎都在controller上面
但是如果今天是不同的controller使用同一個區塊,但是內容不一樣呢?
可以在controller設定一個變數,例如pageflg
每一個controller都有一個pageflg
當系統登入前,使用$pageflg=0
登入後使用$pageflg=1
1.
在default.ctp內
設定

 

if (!isset($pageflg)){
    $pageflg="";
}

當沒有設定pageflg的時候,就是空白 ,如果沒有設定就會出現一些難搞的警告訊息
2.
在要動態改變的區塊設定

if ($pageflg){
    e(login yet);
}else{
    e(not yet);
}

這樣在同一個default.ctp內可以顯示不同的東西,切割起來也比較順手了