CakePHP Session->setFlashでelementを利用する。
notoです。
家に帰って横になっていたら、気付いたら朝でした。
CakePHPでsetFlash関数は、頻繁に使われますがinfoメッセージやerrorメッセージで表示のデザインは変えたいですよね。そんなときのelement指定です。
setFlash関数に、elementを指定できることはあまり知られていないような気がしますので、今回はelementの指定方法です。
controller
指定の仕方は簡単で、第2引数にelementの名前を指定してあげるだけです。
$this->Session->setFlash('setFlashでelementを利用する','flash_message',null,'info');
view
app/views/element/内にflash_message.ctpを作成します。
app/views/element/flash_message.ctp
<div id="infoFlashMessage" class="message"> <?php echo $message; ?> </div>
こんな感じでinfoやerrorのelementを指定すれば、色々捗りますよ。
elementをいちいち指定するのがめんどくさいって方は、AppControllerにsetFlashをwrapした関数を用意してあげたら便利かも。
public $components = array('Session'); /** * Session Component * Wrap setFlash For InfoMessage */ protected function setInfoFlash($message,$params = array()){ $this->Session->setFlash($message,'flash_info',$params,'info'); } /** * Session Component * Wrap setFlash For WarningMessage */ protected function setWarningFlash($message,$params = array()){ $this->Session->setFlash($message,'flash_error',$params,'warning'); } /** * Session Component * Wrap setFlash For ErrorMessage */ protected function setErrorFlash($message,$params = array()){ $this->Session->setFlash($message,'flash_warning',$params,'error'); }
コードを色づけるプラグインがあるみたいなので、近々導入したいです。見辛い。。。
コメント 0