tokiya/laraflash

Laravel 的简单闪存消息。

1.0.2 2023-09-24 18:37 UTC

This package is auto-updated.

Last update: 2024-09-24 20:42:41 UTC


README

这是在 Laravel 应用程序中使用的最简单、最易用的包。

示例

它可以用最少的代码调用。

class UserController
{
    public function store()
    {
        // …

        flash('User successfully registered!');

        return redirect()->back();
    }
}

Laraflash 只有级别。
它不依赖于视图实现,可以自由处理。
此示例适用于 Bootstrap。

@if (flash()->hasMessage())
  <div class="alert alert-{{ flash()->getLevel() }}">
    {{ flash()->getMessage() }}
  </div>
@endif

安装

您可以使用此命令安装。

composer require tokiya/laraflash

使用方法

如果没有指定,默认为 "success"。

class UserController
{
    public function store()
    {
        // …

        flash('User successfully registered!');

        return redirect()->back();
    }
}

当然,也可以明确指定。

class UserController
{
    public function store()
    {
        // …

        flash('User successfully registered!')->success();

        return redirect()->back();
    }
}

您可能想要隔离消息。我们可以实现这一点。

class UserController
{
    public function store()
    {
        // …

        $flash = flash();
        if (...) {
            $flash->success('Pattern 1 message.');
        } else {
            $flash->success('Pattern 2 message.');
        }

        return redirect()->back();
    }
}

有四个级别。

  • 成功
  • 警告
  • 错误
  • 信息
flash('User successfully registered!')->success();
flash('Unregistered information is available.')->warning();
flash('User registration failed.')->error();
flash('A notice exists.')->info();

然而,自由的级别让你摆脱了限制。
然而,它不适合多人开发。
这是因为可能存在混乱的可能性。

flash('Please check now.!')->urgent(); // By John

flash('Please check now.!')->emergency(); // By Mary

如果您想在使用自定义级别的同时保持有序,请更改默认级别。

flash()->customizeErrorKey('danger')->error();

或者

class MyFlash extends Flash
{
    protected array $level_keys = [
        'success' => 'success',
        'warning' => 'warning',
        'error'   => 'danger',
        'info'    => 'info',
    ];
}

想让它更简单吗?

懒人们有更好的方法。
因为每次设置消息都很麻烦,不是吗?
一旦设置了默认消息,就再也不会需要了。
不过,很抱歉。所有级别都需要明确。

flash()->setDefaultSuccessMessage('Successfully saved!')
    ->setDefaultErrorMessage('Failed to save.');
flash()->success(); // Successfully saved!
flash()->error(); //Failed to save. 

许可证

MIT 许可证 (MIT)。