本篇文章給大家分享一個(gè)輕量級(jí)消息提示Laravel擴(kuò)展:spatie/Laravel-flash 包,介紹一下如何在 Laravel 中如何使用,希望對(duì)大家有所幫助!
Laravel 9 保姆級(jí)視頻教程,想學(xué)不會(huì)都難!進(jìn)入學(xué)習(xí)
過去的幾年里,我們一直在項(xiàng)目中使用 laracasts/flash 包來閃存消息。閃存信息指的是:一個(gè)僅能從當(dāng)前請(qǐng)求傳遞到下一個(gè)請(qǐng)求的消息。Laracasts 包這點(diǎn)做的非常不錯(cuò)。它支持多種類型的閃存消息,覆蓋消息。它有開箱即用的引導(dǎo)樣式和預(yù)置的消息級(jí)別。
我們發(fā)現(xiàn)在項(xiàng)目中我們只使用到了一小部分 laracasts/flash 包的功能。所以我們推出了一個(gè)輕量級(jí)的包 spatie/laravel-flash。在這篇博客中我將為你介紹它。
我們的閃存包一次只能發(fā)送一個(gè)閃存消息。因?yàn)橹恍枰@個(gè)功能,我們可以讓 API 非常干凈。接下來就是一個(gè)如何使用的例子:
class MyController { public function store() { // ... flash('My message', 'my-class'); return back(); } }
我們來看下如何展示閃存消息。在包中我們并無視圖。你可以在應(yīng)用中自己創(chuàng)建一個(gè)局部視圖 。該視圖內(nèi)容的可能長這樣:
@if(flash()->message) <div class="{{ flash()->class }}"> {{ flash()->message }} </div> @endif
非常簡(jiǎn)單吧?
你可能已經(jīng)留意到在上面的 php 例子中我們可以指定一個(gè)具體的 CSS 類名-my-class
作為 flash
函數(shù)的第二個(gè)參數(shù)。在實(shí)際應(yīng)用中你可能需要指定這個(gè)消息是一個(gè)成功,警告或錯(cuò)誤消息,而不是要指定具體的類名。這個(gè)包可以輕松定義消息級(jí)別并使之與 CSS 類關(guān)聯(lián)。接下來就是如何使用了:
// 這個(gè)會(huì)放在一個(gè) service provider 中 SpatieFlashFlash::levels([ 'success' => 'alert-success', 'warning' => 'alert-warning', 'error' => 'alert-eror', ]);
現(xiàn)在你就可以設(shè)置一個(gè)閃存消息了:
flash()->success('My message'); // 替代做法 flash('My message', 'success');
下個(gè)請(qǐng)求中 flash()->class
會(huì)返回 alert-success
。
這就是這個(gè)包的所有內(nèi)容了。我們打算讓這個(gè)包一直保持輕量,因?yàn)槲覀冊(cè)陂W存消息中我們根本不需要很多功能。希望 spatie/laravel-flash 包在你的項(xiàng)目中也能有所助益。
原文地址:https://murze.be/a-laravel-package-to-flash-messages
譯文地址:https://learnku.com/laravel/t/25990
【