Laravel Sweet Alert 如何在会话中存储警报并在成功时显示它

问题描述 投票:0回答:1

我正在使用 RealRashid 的 Sweet Alert,我需要当用户创建类别时将他重定向到索引页面并发出警报成功消息

存储功能

public function store(Request $request)
{
    $imageUploaded = false;

    $validator = Validator::make($request->all(), [
        'title' => 'required|string|max:100',
        'title_ar' => 'required|string|max:100',
        'img' => 'required|image|mimes:jpeg,png,jpg',
    ]);

    if ($validator->fails()) {
        $errors = $validator->errors();
        return redirect(route('categories.create'))->withErrorMessage($errors);
    }

    if ($request->has('img')) {
        $img = $request->file('img');
        $ext = $img->getClientOriginalExtension();
        $img_name = 'category-' . uniqid() . ".$ext";
        $stored = $img->move(public_path('uploads/categories/'), $img_name);
        if ($stored) {
            $imageUploaded = true;
        } else {
            return redirect(route('categories.create'))->withUploadErrorMessage('Error Uploading Image');
        }
    }

    $title = $request->title;
    $title_ar = $request->title_ar;

    if ($imageUploaded) {
        Category::create([
            'title' => $title,
            'title_ar' => $title_ar,
            'img' => $img_name
        ]);
    }

    return redirect()->route('categories')
        ->withSuccessMessage('Category Created Successfully');
}

在索引页面中,我正在检查成功消息并像这样提醒它

public function index()
{
    if (session('success_message')) {
        Alert::success('Success!', session('success_message'));
    }
    if (session('error_message')) {
        $errors_arr = [];
        foreach (session('error_message')->messages() as $error) {
            array_push($errors_arr, $error[0]);
        }
        $errors_html = collect($errors_arr)->implode('<br>');
        Alert::html('Error', $errors_html, 'error');
    }

    $categories = Category::latest()->get();

    return view('dashboard/categories/categories', compact('categories'));
}

我在主布局中导入了 Sweet Alert 库

@include('sweetalert::alert')

但它会将我重定向到索引页面,而不会发出任何警报

这里可能出现什么问题?

laravel sweetalert
1个回答
0
投票

当你的工作完成后,使用 with() 或其他方法来设置会话

return redirect('users')->with('success', '$url');

现在检查会话是否已设置,然后您可以显示警报

<script>
    @if(session('succes'))
        swal("{{ session('succes') }}");
    @endif
</script>
© www.soinside.com 2019 - 2024. All rights reserved.