【问题标题】:Get method not supported, use post不支持获取方法,使用 post
【发布时间】:2021-01-10 18:42:20
【问题描述】:

我在尝试创建帖子时遇到错误,我不知道如何解决它,因为我刚开始使用 laravel,我还是个菜鸟。

路由(web.php

Route::put('/create_action', [App\Http\Controllers\ActionController::class, 'createAction'])->name('auditor.create_action');

这是我的控制器方法

  public function createAction(Request $request) {

    $sectors = \DB::table('sector')->get();
    $risicosoorten = \DB::table('risicosoort')->get();
    $risicoclassificaties = \DB::table('risicoclassificatie')->get();
    $users = \DB::table('users')->where('name')->get();
    $statussen = \DB::table('status')->get();

    return view('auditor.create_action' , [
        'sectors' => $sectors,
        'risicosoorten' => $risicosoorten,
        'risicoclassificaties' => $risicoclassificaties,
        'users' => $users,
        'statussen' => $statussen
    ]);


$actie->create([

'create_date' => $req->create_date,
'bron_detail' => $req->bron_detail,
'audit_oordel' => $req->audit_oordel, 
'process' => $req->process, 
'nummer_bevinding' => $req->nummer_bevinding, 
'omschrijving_bevinding' => $req->omschrijving_bevinding, 
'probleem' => $req->probleem, 
'risico_beschrijving' => $req->risico_beschrijving, 
'oorzaak' => $req->oorzaak, 
'aanbeveling_ia' => $req->aanbeveling_ia, 
'map' => $req->map, 
'datum_deadline' => $req->datum_deadline, 
'datum_bijgesteld' => $req->datum_bijgesteld, 
'datum_gesloten' => $req->datum_gesloten, 
'voortgang' => $req->voortgang, 
'aantekeningen_ia' => $req->aantekeningen_ia, 
'oordeel_ia' => $req->oordeel_ia, 
'sector' => $req->sector, 
'pr' => $req->pr, 
'sr' => $req->sr, 
'arc' => $req->arc, 
'orc' => $req->orc, 
'grc' => $req->grc, 
'status' => $req->status, 
'sub_status' => $req->sub_status
]);
}

我的刀片文件格式为:

@extends('layouts.master')


@section('title')
    
@endsection

@section('content')
    
<div class="create_action" id="post">
    <form action="{{ route('auditor.create_action') }}" method="POST">
     @method('PUT')
      @csrf
      <form>
        <div class="form-group">
          <label for="creation_date">Datum ontstaan actie</label>
          <input type="date" class="form-control" name="create_date">
        </div>
        <div class="form-group">
          <label for="bron_detail">Bron detail</label>
          <input type="text" class="form-control" name="bron_detail">
        </div>
<button type="submit" class="btn btn-primary" name="submitBtn" value="submitPost"><strong>Maak actie aan</strong></button>
@endsection

还有更多表单输入字段,但尽量保持简短!

【问题讨论】:

  • 除了 2 个打开的 &lt;form&gt; 标记,您没有关闭 &lt;/form&gt;
  • 另请注意,您的createAction() 方法返回一个视图之前 执行create()create() 永远不会发生。

标签: php laravel


【解决方案1】:

您的视图中有两个打开的表单标签。在@csrf 指令之后。这是故意的吗?因为不能嵌套表单标签。

这可能是导致您的错误的原因,因为应用程序正在尝试对内部表单标签使用“获取”方法,因为没有声明任何方法。

【讨论】:

  • 我已将其删除,但似乎不是问题的原因
  • i.stack.imgur.com/9eUL8.png 抱歉,由于代表人数少,无法将其添加到帖子中
  • 您是否要创建新记录?尝试将 Route::put() 更改为 Route::post() 并删除刀片文件中的方法('PUT')。
  • 我正在尝试创建新记录,是的,遗憾的是它仍然没有修复它:(
  • 你在使用 vagrant 吗?如果是这样,请尝试重新启动 vagrant。然后使用表单中的实际路线而不是路线名称。即
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 2020-04-13
  • 2019-12-17
  • 1970-01-01
  • 2023-02-05
  • 2020-09-04
相关资源
最近更新 更多