zealproject/zeal-messages

用于显示应用程序消息的简单助手/控制器插件

dev-master 2013-12-27 17:08 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:49:18 UTC


README

本模块提供了一种向用户显示消息的简单方法。它被设计成ZF的flash messenger的替代品,除了flash messenger的功能外,还包括设置不同类型消息(例如,'info'消息、'error'消息)的能力,以及向用户立即显示消息的功能(而不是像flash messenger那样在下一个请求中显示)。

安装

安装此模块的最佳方式是使用Composer(https://getcomposer.org.cn)。将其添加到您的composer.json

"require": {
    "zealproject/zeal-messages": "dev-master"
}

然后运行composer install进行安装。

您还需要编辑您的application.config.php以将ZealMessages添加到您的模块数组中。

用法

要从控制器动作添加消息,立即向用户显示消息

$this->messages()->info('Your message here');

或错误消息

$this->messages()->error('Your error message here');

也支持'success'消息。

要添加闪存消息(这些消息将添加到会话中,并在后续请求中向用户显示),用法是

$this->messages()->flashInfo('Your message here');

$this->messages()->flashError('Your error message here');

等等。

因此,处理表单数据的控制器动作可能看起来像

public function editAction()
{
    [load data and setup $form]

    if ($this->getRequest()->isPost()) {
        $form->setData($this->getRequest()->getPost());
        if ($form->isValid()) {
            $data = $form->getData();

            if ([code to save $data]) {
                $this->messages()->flashInfo('Your details were successfully saved');
                $this->redirect()->toRoute([some route]);
            } else {
                $this->messages()->error('An error occurred saving your details');
            }
        }
    }

    return new ViewModel(array(
        'form' => $form
    ));
}

渲染消息

该模块包含一个用于渲染消息的视图助手。您通常会将此添加到布局中,在视图内容上方

<?=$this->messages()?>

如果有要显示的消息,它将只输出HTML。

消息将在具有id messages的div内输出为无序列表(每个类型一个列表),以便于使用CSS样式。每个列表都使用消息类型作为类名,例如

<div id="messages">
    <ul class="info">
        <li>Your details were successfully saved</li>
    </ul>
</div>