Forms 未调用控制器方法
当我提交表单时,我的Laravel方法没有被调用Forms 未调用控制器方法,forms,laravel-5,Forms,Laravel 5,当我提交表单时,我的Laravel方法没有被调用 <form class="form" method="post" action="/contact"> <div class="form__field"> <input id="name" name="name" type="text"><label for="name">Name</label> </div> <div class="form__field">
<form class="form" method="post" action="/contact">
<div class="form__field">
<input id="name" name="name" type="text"><label for="name">Name</label>
</div>
<div class="form__field">
<input id="email" name="email" type="email"><label for="email">Email</label>
</div>
<div class="form__field">
<select id="select-floor" name="select-floor">
<option disabled selected>
I'm interested in floor…
</option>
<option value="basement">
Front house
</option>
<option value="ground-floor">
Ground floor
</option>
<option value="first-floor">
First floor
</option>
<option value="second-floor">
Second floor
</option>
<option value="third-floor">
Third floor
</option>
</select><label class="visually-hidden" for="select-floor">Select floor…</label>
</div>
<div class="form__field">
<textarea name="message"></textarea><label for="message">Message</label>
</div><button class="" type="submit">Send Enquiry</button>
</form>
在我的控制器中,我有:
class ContactController extends Controller
{
public function sendEmail(){
dd('test');
}
}
我期望发生的是输出字符串test
,并且应用程序应该刚刚结束。实际上,表单页面只是在重新加载
我检查了开发人员控制台,可以看到419错误,但随后显示的是页面,而不是419错误
我完全被难住了。我遗漏了什么?你试过更换吗
<form class="form" method="post" action="/contact">
与
@csrf
首先,确保您的项目中包含或安装了该软件包。之后,只需编辑您的表单方法,如下所示:
<form method="post" action="{{ url('/contact') }}">
{!! csrf_field() !!}
{!!csrf_field()!!}
在这里,您没有将csrf令牌添加到表单中,这就是代码无法正常工作的原因。有关csrf的更多信息,请阅读此事实证明,以前的一位开发人员引入了一个JavaScript插件,该插件拦截了按钮操作并阻止其正确发布
插件不再维护,因此我删除了它,我的表单开始按预期工作。请使用什么版本的laravel?@Thamerbelfkih它似乎是5.6.39请检查我的响应,即使是CSRF字段,我仍然没有触发我的方法。没有输出错误消息。页面刚刚重新加载。您在prod或dev env上?我正在本地运行此程序。您是否已在ur env中启用报告错误?请立即尝试。
<form method="POST" class="form" action="{{ route('contact') }}" >
@csrf
<form method="post" action="{{ url('/contact') }}">
{!! csrf_field() !!}