0

custom_flash.ctpElementsフォルダーのようなものを作成して、次のように呼び出すことで、フラッシュマークアップを置き換えることができることを私は知っています:

$this->Session->setFlash('Hello', custom_flash)

しかし、2 番目のパラメーターを追加しない場合、どうすればカスタム レイアウトを使用できますか?

$this->Session->setFlash('Hello')

default.ctpElementsフォルダー内に名前の付いたファイルを作成することで、デフォルトを置き換えることができると思いました。しかし、私はできません。

コードはできるだけ短くしたい。だからこそ、私はこれを行う方法を探しています

解決策はありますか?ありがとう

4

3 に答える 3

4

コンポーネントを作成してみてください:

class MySessionComponent extends Session {
    public function setFlash($message) {
         return $this->setFlash($message, 'custom_flash');
    }
}

そして、あなたのコントローラよりも単に使用してください:

public $components = array('MySession');
$this->MySession->setFlash('Hello');
于 2013-05-30T09:20:53.687 に答える
3

この質問から答えを見つけました。

このコードを追加する必要がありますapp/Controller/AppController.php

function beforeRender(){
    if ($this->Session->check('Message.flash')) {
        $flash = $this->Session->read('Message.flash');

        if ($flash['element'] == 'default') {
            $flash['element'] = 'fileNameOfYourCustomFlash';
            $this->Session->write('Message.flash', $flash);
        }
    }
}

基本的に、まだ存在しないときにelementパラメーターを追加します。flash

于 2013-05-30T04:41:53.373 に答える
0

これは、こちらのcakephpウェブサイトで説明されています

于 2013-11-21T22:29:53.117 に答える