php - PHP Laravel 会话闪烁警报消息未显示
问题描述
在我laravel
的应用程序中,如果用户想要订阅时事通讯,可以选中联系表单上的复选框。当复选框被选中并提交表单时,控制器中会出现一个检查,如果用户已经订阅,如果是这样,则应该出现一个闪烁警报/消息,其中包含“您已经订阅”之类的内容。现在,检查本身有效,但没有显示闪光/警报消息,我不知道为什么。
在我看来:
@if (\Session::has('success'))
<div class="alert alert-success">
<p>{{ \Session::get('success') }}</p>
</div>
@endif
@if (\Session::has('failure'))
<div class="alert alert-danger">
<p>{{ \Session::get('failure') }}</p>
</div>
@endif
<div class="contact-form" id="contact">
<form method="POST" action="{{ route('contact.store') }}">
...
</form>
</div>
在我的控制器中:
// when the checkbox is checked!
if (!empty(request()->newsletter)) {
if (!Newsletter::isSubscribed(request()->email)) {
Newsletter::subscribePending(request()->email);
return redirect()->route('contact.create')->with('success', 'Thanks for subscribing!');
} else {
return redirect()->route('contact.create')->with('failure', 'You are already subscribed');
}
}
有人可以帮我吗?
解决方案
您似乎正在使用会话类,而不是 laravel 在服务容器上注入的会话助手。
如果您使用的是 Laravel 5.8,刀片中的会话是一个辅助函数,根据此处的文档:
https://laravel.com/docs/5.8/responses#redirecting-with-flashed-session-data
一个例子
Route::post('user/profile', function () {
// Update the user's profile...
return redirect('dashboard')->with('status', 'Profile updated!');
});
所以像这样在刀片中使用辅助函数:
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
注意:这仅在您使用页面提交时才有效。如果是 javascript 提交,您可能需要刷新页面才能显示警报。
推荐阅读
- python - 为什么 Pygame 从列表索引错误中崩溃?
- ruby-on-rails - 如何在 Rails 中建立接受一个提案的协会?
- android - 'android.view.View android.widget.TextView.findViewById(int)' 在空对象引用上
- visual-studio-code - 有没有办法在 VS Code 中加粗所有标签?
- powershell - 从多行 PS 脚本组装 oneliners
- ios - 类协议扩展仅限于有限数量的类
- php - Wordpress 页面上的未定义索引错误应该在哪里?
- spring-boot - Spring Security SAML 正在抛出响应没有任何可以通过主题验证的有效断言
- python - 模拟 API 调用 python?
- vue.js - 图像未显示在 Vuetify 数据表槽中