codenest / ahem
Ahem 是一个简单的 Laravel 扩展包,用于创建、管理和显示单个和多个请求通知消息。
Requires
- php: >=5.3.0
- illuminate/config: 4.*
- illuminate/session: 4.*
- illuminate/support: 4.*
This package is not auto-updated.
Last update: 2024-09-28 15:56:50 UTC
README
A Laravel 4 扩展包,用于创建和管理通知
Ahem 可以简单实现以下功能:
- 创建通知并添加其消息。
- 在单个通知中添加多个消息。
- 定义自定义通知类型或扩展现有类型。
- 轻松定义每种通知类型如何渲染。
- 轻松以 HTML 或 JSON 格式渲染通知。
安装
将以下内容添加到您的 composer.json
"codenest/ahem": "dev-master"
然后在终端中运行 composer update
为了开始使用 Ahem,您需要在应用程序中添加其服务提供者和外观。为此,打开 app/config/app.php
。
在 providers
数组中添加
'Codenest\Ahem\AhemServiceProvider',
并在 aliases
数组中添加
'Ahem' => 'Codenest\Ahem\Facades\Ahem',
配置。
默认情况下,Ahem 在其配置文件中定义了 success
、error
、warning
和 info
通知类型,您可能希望添加自己的类型、编辑或删除这些类型中的一些。为此,您需要通过运行以下命令将配置文件发布到您的应用程序中。
php artisan config:publish codenest/ahem
========================
基本用法。
在深入了解之前,让我们看看如何使用 Ahem 的默认通知类型。
添加通知
添加单个消息通知。
Ahem::success()->message('Login was successfully. Welcome.'); Ahem::error()->message('Wrong email or password.'); Ahem::info()->message('Somebody send you a message'); Ahem::warning()->message('Your account subscription will expire in 3 days. Please renew.');
为通知提供唯一的 id
Ahem::success('login_success')->message('Login was successfully. Welcome.'); Ahem::error('login_error')->message('Wrong email or password.');
在上面的例子中,我使用了 login_success
和 login_error
作为 id。这个 id 唯一地标识了通知,如果您在单个请求上有多个通知,并且希望在以后引用其中的一些,我建议使用它。如您在第一个示例中看到的那样,id
不是必需的。您也可以将其留空,通知将被分配一个唯一的整数 id
。
多个消息和通知标题。
添加带有标题的消息数组。
Ahem::error('login_error') ->messages(array('email' => 'Enter a valid email address', 'password' => 'The password field is required')) ->heading('Something went wrong');
添加验证错误消息。
public function postLogin() { $rules = array ( 'email' => 'email|required', 'password' => 'required' ); $validator = Validator::make( Input::all(), $rules); if($validator->passes()) { Ahem::success('login_success')->message('Login was successfully. Welcome!!'); return Redirect::to('/'); } else { Ahem::error('login_error')->messages($validator->messages())->heading('Something went wrong.'); return Redirect::back()->withInput(); } }
同一请求的通知。
正如我们稍后将要看到的,通知在创建时自动闪入会话,并在渲染后被清除,您可能希望为单个请求添加不需要闪现的通知。我们通过简单地设置 flashable
为 false
来实现这一点。
Ahem::error('login_error')->message('Login error. Try again.')->flashable(false);
=======================
渲染通知。
渲染所有可用的通知。
{{ Ahem::renderAll() }}
渲染特定类型的所有可用通知。
{{ Ahem::renderAll(array('error', 'warning')) }}
渲染给定类型的所有通知。
{{ Ahem::renderError() }} {{ Ahem::renderSuccess() }}
渲染特定的通知。
{{ Ahem::renderError('login_error') }} {{ Ahem::renderSuccess('login_success') }}
渲染通知但不从会话中清除它们。
我之前提到,在渲染闪现通知后,它会自动从会话中清除。在某些情况下,我们可能需要在渲染后保留一些通知在会话中。
渲染并保留所有可用的通知。
{{ Ahem::renderAllButKeep() }}
渲染并保留特定类型的所有可用通知。
{{ Ahem::renderAllButKeep(array('error', 'warning')) }}
渲染并保留给定类型的所有通知。
{{ Ahem::renderButKeepError() }} {{ Ahem::renderButKeepSuccess() }}
渲染并保留特定的通知。
{{ Ahem::renderButKeepError('login_error') }} {{ Ahem::renderButKeepError('login_success') }}