在PHP Laravel中添加发布表单动作

时间:2018-07-17 03:28:27

标签: php laravel forms

我很难使用html / laravel中的post form函数从列表页面返回索引页面。

<form method="post" action="HomeController@index" >
</form>

我的路线是:

Route::get('/','HomeController@index');
Route::post('/', array('uses' => 'HomeController@index'));
Route::get('/list', 'ListController@list');

我得到的错误是

TokenMismatchException

我注意到URL仅将Controller添加到索引中 http://localhost/mylaravel/list/HomeController@index

什么时候应该 http://localhost/mylaravel/

3 个答案:

答案 0 :(得分:0)

您应该像这样在表单中添加csrf令牌:

.htaccess

或者:

<form method="post" action="HomeController@index" >
    {{ csrf_field() }}

    <!-- other code -->
</form>

对于Laravel 4:

<form method="post" action="HomeController@index" >
    @csrf

    <!-- other code -->
</form>

答案 1 :(得分:0)

您尝试过这种方式吗?。

<form action="{{ url('/') }}" method="post">
{{ csrf_field() }}
<input type="text" name="title">
<input type="submit" value="submit">
</form>

答案 2 :(得分:0)

根据Laravel official doc version 5.7,Laravel为由应用程序管理的每个活动用户会话自动生成CSRF“令牌”。每当您在应用程序中定义HTML表单时,都应在表单中包含一个隐藏的CSRF令牌字段,以便CSRF保护中间件可以验证请求。

<form method="POST" action="action="{{ action('MailboxController@store') }}">

     // Use this blade directive to generate the token field
     @csrf

     <div class="form-group">
          <input class="form-control" placeholder="To:">
     </div>
     ...
     ...

在将此请求的令牌与会话中存储的令牌匹配之后,VerifyCsrfToken中间件将自动验证此令牌。