php - 发送消息后可访问的页面
问题描述
我有一个联系表格,我创建了一个页面来显示消息发送的时间,但我希望只有在发送消息时才能访问此页面。可能吗?
这是来自 ContactFormController 的行
public function store()
{
$data = request()->validate([
'name' => 'required',
'email' => 'required|email',
'message' => 'required',
]);
Mail::to('test@test.com')->send(new ContactFormMail($data));
return redirect('contact.recieved');
}
因为当我转到它打开的contact.recieved 页面时,我希望它仅在发送消息时打开。
以下是 web.php 文件中的行
Route::get('contact', 'ContactFormController@create')->name('contact.create');
Route::post('contact', 'ContactFormController@store')->name('contact.store');
Route::view('message-recieved', 'contact.recieved');
这是contact.recieved页面
<body style="background: lightgrey;">
<div class="centered text-success ">
<h1>Message Recieved! :)</h1>
<hr>
<p>Thank you for your message. I'll be in touch.</p>
</div>
<div class="p-4">
<a class="a-links p-2 border border-success rounded-sm" href="{{url('/')}}">
<i class="fa fa-angle-left text-success"> <span> Go Back</span></i>
</a>
</div>
</body>
解决方案
为此,您可以使用try catch块,如下所示:
public function store()
{
$data = request()->validate([
'name' => 'required',
'email' => 'required|email',
'message' => 'required',
]);
try {
Mail::to('test@test.com')->send(new ContactFormMail($data));
} catch (\Swift_TransportException $e){
return "Cant send email"; // Return this, if not send
}
return redirect('contact.recieved'); // Return this, if send successfully
}
推荐阅读
- c - 使用 POSIX.1-2001 创建临时目录
- regex - 使用 RegEx 键入时验证用户输入
- python - DRF - M2M 通过 ImageField 的序列化程序提供 UnicodeDecodeError
- google-data-studio - 是一种在 Google Data Studio 地理地图上显示多个指标的方法吗?
- firebase - 未登录时无法看到来自 Firebase 的数据。(Vue js)
- r - 如何使用 DBI::dbConnect() 从多个数据库中读取和写入表
- javascript - 将带有生成密码的变量从后端传递到前端
- redux - 基于连接到 Redux 的 React 组件的 ag-grid 单元格编辑器的问题
- oracle - Alteryx 和表格 - OCILogon2 错误:ORA-12514:TNS:侦听器当前不知道连接描述符中请求的服务
- oracle - spring.jpa.hibernate.ddl-auto=validate 需要什么最低数据库权限?