【发布时间】:2023-03-16 15:20:01
【问题描述】:
我正在尝试构建一个包含两个表单的页面,两个表单都设置为method="post",并为每个表单提交<button>。第一个表单的提交动作由FirstController处理,第二个由SecondController处理。在路由文件web.php 中,我需要为每个提交按钮声明两个路由函数,并且我想保持相同的url,但是按钮无法知道它应该调用哪个帖子。我看到了一些关于创建作业来处理每个按钮的解决方案,但无论如何我可以告诉 Laravel 调用哪个帖子路由吗?
骨架是这样的:
web.php
Route::post('/', 'FirstController@store');
Route::post('/', 'SecondController@sendEmail');
FirstController.php
class FirstController extends Controller
{
public function store()
{
/*
create a new entry to the data base
*/
}
}
SecondController.php
class SecondController extends Controller
{
public function sendEmail()
{
Mail::to('recipient@abc.com')->send(new SampleMail());
}
}
【问题讨论】:
-
"我想保留相同的 url" 为什么?处理 POST,然后在完成后重定向回
/。 -
@ceejayoz 你好。原因是整个页面有两个按钮,第一个是创建新条目到数据库,第二个是确认创建的条目并发送电子邮件。这都不应该将用户重定向到新页面。
-
除非您执行 AJAX,否则 POST 总是会“将用户重定向到新页面”(即使它是相同的 URL),此时 URL 无论如何都无关紧要。您的两个表单可以 POST 到不同的 URL;这些网址都可以重定向回
/。