[英]Form submission in laravel is not working and show token-mismatch Exception
我是新的Laravel學習者。 我已經在Laravel 5.4中創建了一個表單,並添加了兩個字段,一個是textfield,另一個是Submit按鈕。 我已經為表單提交創建了一個名稱路由。 但是當我提交表單時,它顯示令牌不匹配異常。 我從我的代碼中找不到錯誤。 這是我的表單代碼。
<form method="post" action="{{route('f.submit')}}">
{{csrf_field()}}
<input class="form-control" type="text" name="fname">
<input type="submit" name="submit" value="Create">
</form>
這是我的路線
Route::post('formsubmit','HomeController@formSubmit')->name('f.submit');
還有我的控制器
public function formSubmit()
{
echo "Form Submitted";
}
從Laravel 5.6開始,您可以使用新的@csrf
刀片指令。 例如:
<form method="POST" action="/profile">
@csrf
...
</form>
您必須為令牌添加輸入隱藏字段。 將您的視圖更改為:
<form method="post" action="{{route('f.submit')}}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input class="form-control" type="text" name="fname">
<input type="submit" name="submit" value="Create">
</form>
您能否確保/storage
目錄具有適當的寫權限(0755)? 如果您使用的是Linux,則可以通過sudo chmod 0755 -R storage/
另外,請嘗試不要轉義csrf_field()值。 代替{{ csrf_field() }}
嘗試{!! csrf_field !!}
{!! csrf_field !!}
因為該輔助函數吐出HTML
嘗試這個。 用於表格。
<form method="post" action="{{route('f.submit')}}">
{{csrf_field()}}
<input class="form-control" type="text" name="fname">
<input type="submit" name="submit" value="Create">
在控制器中。
public function formSubmit(Request $request)
{
$request->all();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.