【发布时间】:2020-07-11 04:55:00
【问题描述】:
我有一个联系表单,我创建了一个页面来显示消息发送的时间,但我希望只有在发送消息时才能访问此页面。有可能吗?
这是来自 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>
【问题讨论】:
-
在执行redirect() 之前,您可以存储一个会话变量,指示表单已填写。然后在收到的页面上,您可以对这个变量执行 if(!isset(...)) 并重定向回来。
标签: php laravel controller routes laravel-mail