Laravel消息提示扩展推荐:spatie/Laravel-flash

来自:互联网
时间:2022-12-02
阅读:

本篇文章给大家分享一个轻量级消息提示Laravel扩展:spatie/Laravel-flash 包,介绍一下如何在 Laravel 中如何使用,希望对大家有所帮助!

Laravel消息提示扩展推荐:spatie/Laravel-flash

过去的几年里,我们一直在项目中使用 laracasts/flash 包来闪存消息。闪存信息指的是:一个仅能从当前请求传递到下一个请求的消息。Laracasts 包这点做的非常不错。它支持多种类型的闪存消息,覆盖消息。它有开箱即用的引导样式和预置的消息级别。

我们发现在项目中我们只使用到了一小部分 laracasts/flash 包的功能。所以我们推出了一个轻量级的包 spatie/laravel-flash。在这篇博客中我将为你介绍它。
我们的闪存包一次只能发送一个闪存消息。因为只需要这个功能,我们可以让 API 非常干净。接下来就是一个如何使用的例子:

class MyController
{
    public function store()
    {
        // ...
        flash('My message', 'my-class');
        return back();
    }
}

我们来看下如何展示闪存消息。在包中我们并无视图。你可以在应用中自己创建一个局部视图 。该视图内容的可能长这样:

@if(flash()->message)
    <div class="{{ flash()->class }}">
        {{ flash()->message }}
    </div>
@endif

非常简单吧?
你可能已经留意到在上面的 php 例子中我们可以指定一个具体的 CSS 类名-my-class 作为 flash 函数的第二个参数。在实际应用中你可能需要指定这个消息是一个成功,警告或错误消息,而不是要指定具体的类名。这个包可以轻松定义消息级别并使之与 CSS 类关联。接下来就是如何使用了:

// 这个会放在一个 service provider 中
\Spatie\Flash\Flash::levels([
    'success' => 'alert-success',
    'warning' => 'alert-warning',
    'error' => 'alert-eror',
]);

现在你就可以设置一个闪存消息了:

flash()->success('My message');
// 替代做法
flash('My message', 'success');

下个请求中 flash()->class 会返回 alert-success
这就是这个包的所有内容了。我们打算让这个包一直保持轻量,因为我们在闪存消息中我们根本不需要很多功能。希望 spatie/laravel-flash 包在你的项目中也能有所助益。

原文地址:https://murze.be/a-laravel-package-to-flash-messages

译文地址:https://learnku.com/laravel/t/25990

返回顶部
顶部