【问题标题】:Adding post form action in php laravel在 php laravel 中添加表单操作
【发布时间】:2018-07-17 03:28:26
【问题描述】:

我很难使用 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 只在索引帖子中添加了控制器 http://localhost/mylaravel/list/HomeController@index

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

【问题讨论】:

    标签: php laravel forms


    【解决方案1】:

    你试过这种方法吗..

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

    【讨论】:

      【解决方案2】:

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

      <form method="post" action="HomeController@index" >
          {{ csrf_field() }}
      
          <!-- other code -->
      </form>
      

      或者:

      <form method="post" action="HomeController@index" >
          @csrf
      
          <!-- other code -->
      </form>
      

      对于 Laravel 4:

      <input type="hidden" name="_token" value="<?php echo csrf_token() ?>">
      

      【讨论】:

      • 它似乎不起作用。我尝试将它包含在一个 php 标签中,它仍然显示令牌不匹配错误?我做错了吗?
      • 你使用的是哪个 Laravel 版本?如果您使用的是 {{ csrf_field() }}
      • 它的 laravel 4. 我试过 {{csrf_field()}} 它显示错误 MethodNotAllowedHttpException
      • &lt;input type="hidden" name="_token" value="&lt;?php echo csrf_token() ?&gt;"&gt; -> 这应该适用于 Laravel 4!
      • 您好,由于某种原因,它仍然返回 MethodNotAllowedHttpException 错误?
      【解决方案3】:

      根据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 中间件将在将请求的令牌与会话中存储的令牌匹配后自动验证此令牌。

      【讨论】:

        猜你喜欢
        • 2015-05-13
        • 2021-01-13
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        相关资源
        最近更新 更多