$this->Flash->set('Your college has been updated.');
我正在传递上面的flash消息。现在我想传递两条flash消息。任何人都可以帮我解决这个问题..
答案 0 :(得分:1)
你可以在这里查看 https://mrphp.com.au/blog/multiple-flash-messages-with-style-in-cakephp/ 在这个CakePHP教程中,我将解释如何输出多个flash消息。
这形成了一个消息堆栈,可用于通知用户已发生多个事件。 多重闪光功能
我们想在app_controller中添加一个方法来处理消息堆栈。改变它以满足您的需求
app_controller.php
<?php
class AppController extends Controller {
function _flash($message,$type='message') {
$messages = (array)$this->Session->read('Message.multiFlash');
$messages[] = array(
'message'=>$message,
'layout'=>'default',
'element'=>'default',
'params'=>array('class'=>$type),
);
$this->Session->write('Message.multiFlash', $messages);
}
}
控制器方法
这只是查看邮件的测试操作。
控制器/ posts_controller.php
<?php
class PostsController extends AppController {
var $name = 'Posts';
function admin_index() {
$this->_flash(__('Normal message.', true),'message');
$this->_flash(__('Info message.', true),'info');
$this->_flash(__('Success message.', true),'success');
$this->_flash(__('Warning message.', true),'warning');
$this->_flash(__('Error message.', true),'error');
$this->set('posts',$this->paginate());
}
}
显示消息
我们希望向用户显示我们设置的消息。
视图/布局/如default.php
<div id="messages">
<?php
if ($session->check('Message.flash')) $session->flash(); // the standard messages
// multiple messages
if ($messages = $session->read('Message.multiFlash')) {
foreach($messages as $k=>$v) $session->flash('multiFlash.'.$k);
}
?>
</div>
一些让它变得漂亮的CSS
这将设置一些颜色和图像。
.message, .info, .success, .warning, .error {
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 65px;
background-repeat: no-repeat;
background-position: 10px center;
font-size: 125%;
}
.info {
/* color: #00529B; */
border-color: #00529B;
background-color: #BDE5F8;
background-image: url('../../img/message/info.png');
}
.success {
/* color: #4F8A10; */
border-color: #4F8A10;
background-color: #DFF2BF;
background-image:url('../../img/message/success.png');
}
.warning {
/* color: #9F6000; */
border-color: #9F6000;
background-color: #FFFABF;
background-image: url('../../img/message/warning.png');
}
.error {
/* color: #D8000C; */
border-color: #D8000C;
background-color: #FFBABA;
background-image: url('../../img/message/error.png');
}
答案 1 :(得分:1)
你应该使用[key] param
// In your Controller
$this->Flash->success('The user has been saved', array(
'key' => 'succ',
'params' => array(
'name' => $user['User']['name'],
'email' => $user['User']['email']
)
));
$this->Flash->success('The user has been saved', array(
'key' => 'info',
'params' => array(
'name' => $user['User']['name'],
'email' => $user['User']['email']
)
));
// in View
echo $this->Flash->render('succ');
echo $this->Flash->render('info');