国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Laravel Inertia JS Flash 訊息僅顯示一次
P粉852578075
P粉852578075 2023-11-03 12:33:50
0
1
971

因?yàn)镮nertiaJS不會(huì)刷新相同的路由元件,所以無(wú)論你從後端傳遞多少次訊息,諸如閃現(xiàn)訊息之類的東西只會(huì)顯示一次。我嘗試了所有方法,但沒有任何效果,我所需要的只是在執(zhí)行相同操作失敗後能夠再次觸發(fā)相同的閃存訊息。

控制器: 這應(yīng)該作為我通過一些 if 語(yǔ)句進(jìn)行驗(yàn)證的一部分來(lái)觸發(fā),所以基本上我是說,如果請(qǐng)求的數(shù)量超過庫(kù)存數(shù)量,則會(huì)返回此閃存訊息。

                    return back()->with([
                        'error' => 'This item has only ' . $item->qty . ' items in stock'
                    ]);

Flash元件:

<script setup>
import { ref, onMounted } from "vue";
defineProps({
    message: Object,
});

const showNotif = ref(false);

let msgs = ref([]);

onMounted(() => {
    showNotif.value = true;
    setTimeout(() => {
        showNotif.value = false;
    }, 6000);
});
</script>

<template>
    <div>
        <Transition
            mode="out-in"
            name="flash"
            tag="div"
            enter-active-class="animate__animated animate__fadeInUp"
            leave-active-class="animate__animated animate__fadeOutDown"
            appear
        >
            <p
                v-if="message.error && showNotif"
                class="cursor-pointer fixed bottom-3 right-3 bg-red-600 px-5 py-1 font-semibold text-white rounded-xl"
            >
                {{ message.error }}
            </p>
        </Transition>
        <Transition
            mode="out-in"
            name="flash"
            tag="div"
            enter-active-class="animate__animated animate__fadeInUp"
            leave-active-class="animate__animated animate__fadeOutDown"
            appear
        >
            <p
                v-if="message.success && showNotif"
                class="cursor-pointer fixed bottom-3 right-3 bg-green-600 px-5 py-1 font-semibold text-white rounded-xl"
            >
                {{ message.success }}
            </p>
        </Transition>
    </div>
</template>

這工作正常,閃光燈出現(xiàn),花了幾秒鐘然後消失。但無(wú)論我點(diǎn)擊同一個(gè)按鈕多少次來(lái)獲取此閃現(xiàn)訊息,它都不會(huì)發(fā)生,我的大腦即將爆炸!

P粉852578075
P粉852578075

全部回覆(1)
P粉201448898

這裡的文件中,您必須尋找app /Http/Middleware/HandleInertiaRequests.php 並確保你有這樣的東西。

class HandleInertiaRequests extends Middleware
{
    public function share(Request $request)
    {
        return array_merge(parent::share($request), [
            'flash' => [
                'error' => fn () => $request->session()->get('error')
            ],
        ]);
    }
}

基本上,您正在建立一個(gè)名為 flash 的共用資料屬性,它是一個(gè)帶有訊息鍵的關(guān)聯(lián)陣列(物件)。

請(qǐng)注意,如果您使用with(['error => 'message here']),您將只能在前端取得資料。如果您想要成功,您也必須自行添加它。

您將獲得的資料範(fàn)例

#
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板