mzur/kirby-flash

将数据存储在会话中以便于下一次请求。数据将在下一页加载后删除。

安装次数: 43,840

依赖项: 1

建议者: 0

安全: 0

星标: 2

关注者: 3

分支: 2

开放性问题: 0

类型:kirby 插件

v2.2.0 2023-01-05 18:59 UTC

This package is auto-updated.

Last update: 2024-09-05 22:19:26 UTC


README

Tests

这是对 jevets\kirby-flash 的分支。

允许您将数据“闪存”到会话中,该数据将在下一次页面加载时通过会话可用,之后数据将从会话中删除。

非常有用

  • 保存提交的表单数据以供表单验证,特别是用于 Post/Redirect/Get 设计模式
  • 在页面重新加载后显示成功或错误消息

快速示例

flash('thanks_message', 'Thank you for contacting us!');

其他地方...

<?php if (flash('thanks_message')): ?>
    <?php echo flash('thanks_message') ?>
<?php endif ?>

安装

使用 composer 安装

# Kirby v2
composer require mzur/kirby-flash:^1.0
# Kirby v3
composer require mzur/kirby-flash:^2.0

用法

设置数据

flash('key', 'value');

flash('messages.success', ['Thanks for your feedback!']);
flash('messages.errors', ['Email is a required field']);
flash('username', 'jimihendrix');

获取数据

$value = flash('key');

$success_messages = flash('messages.success'); // Array( 0 => 'Thanks for your feedback!' )
$username = flash('username'); // "jimihendrix"

示例

flash('messages.errors', [
    'Email is required',
    'Password is required',
]);

flash('messages.errors'); // Array( 0 => 'Email is required', 1 => 'Password is required' )
<?php if (count(flash('messages.errors')) > 0): ?>
<div class="alert alert-error">
    <?php foreach (flash('messages.errors') as $message): ?>
        <div><?= html($message) ?></div>
    <?php endforeach ?>
</div>
<?php endif ?>

flash() 辅助函数

此类加载一个全局辅助函数: flash($key, $value = '')

flash() 函数仅在它尚未定义的情况下定义,因此如果需要,您可以定义自己的 flash() 函数。大多数时候,您可能只需要在您的应用程序中使用 flash()

使用一个参数调用 时,返回值。如果密钥不存在,则返回空字符串。

flash('my_key');

使用两个参数调用 时,将 $value 设置为 $key

如果 $key 已经存在,则 $value 将替换现有的 $key 的值。

flash('my_other_key', 'Some Value');
flash('my_other_key', 'Some Other Value');

flash('my_other_key'); // "Some Other Value"

您可以在会话中存储任何类型的数据。作为另一个示例,您可以将多个表单验证错误消息作为数组存储在单个键中。

flash('messages.errors', ['Email is required.', 'Phone is required.']);

flash('messages.errors'); // Array( 0 => 'Email is required.', 1 => 'Phone is required.' )

仅当前页加载的闪存

有时将消息闪存到当前页面加载,而不是下一次加载,可能会很有用。这种用例出现在需要在对同一请求的响应中显示消息,而不是重定向时。

您可以使用可选的第三个参数,一个布尔值来切换是否仅保留闪存变量用于当前请求。此参数的默认值为 false,这将保留闪存变量用于下一次请求。

flash('message', 'Message for redirect'); // Keep for next request
flash('message', 'Message for this response', true); // Keep only for current request

## Session Key

By default Flash stores data under the session key `_flash`.

So you *could* access flash data like `$kirby->session()->get('_flash')` if you wanted to.

### Changing the Session Key

Use the static method to change the flash key. (You should probably do this early on in your app, probably in `index.php` or `site.php`.)

```php
Jevets\Kirby\Flash::setSessionKey('_my_custom_key');

获取会话键

Jevets\Kirby\Flash::sessionKey();

贡献

请随意发送拉取请求!

问题/错误

请使用 GitHub 问题跟踪器