laravel 5.3 RouteCollection.php 第 218 行中的 MethodNotAllowedHttpException:

laravel 5.3 MethodNotAllowedHttpException in RouteCollection.php line 218:

(已解决)谢谢..

我只想创建一个名为 "tambah.blade.php" 的新视图,控制器是 "JurnalController.php",方法是 "tambahJurnal",但它显示错误。我的路线有什么问题?

这是我的表格:

<h1>Tambah Jurnal</h1>

 <form method="post" class="tambahJurnal" action="{{ route('tambah') }}" >
   {{ csrf_field() }}
   <div class="">
     No jurnal
     <input type="text" name="no_jurnal" value="">
   </div>

   <div class="">
     Tgl Jurnal
     <input type="date" name="tgl_jurnal" value="">
   </div>

   <div class="">
     Keterangan
     <input type="textarea" name="keterangan" value="">
   </div>

   <input type="submit" name="" value="Submit">
 </form>

这是我在 JurnalController 中的方法:

public function tambahJurnal(Request $request){

  $jurnal = new Jurnals;
  $jurnal->no_jurnal = $request->no_jurnal;
  $jurnal->tgl_jurnal = $request->tgl_jurnal;
  $jurnal->keterangan = $request->keterangan;

  $jurnal->save();
}

这是我的路线:

Route::post('/tambah', 'JurnalController@tambahJurnal');

它显示如下错误: enter image description here

你可以这样写。希望这能解决您的问题。

<h1>Tambah Jurnal</h1>

 <form method="post" class="tambahJurnal" action="{{ url('tambah') }}" >
   {{ csrf_field() }}
   <div class="">
     No jurnal
     <input type="text" name="no_jurnal" value="">
   </div>

   <div class="">
     Tgl Jurnal
     <input type="date" name="tgl_jurnal" value="">
   </div>

   <div class="">
     Keterangan
     <input type="textarea" name="keterangan" value="">
   </div>

   <input type="submit" name="" value="Submit">
 </form>

您正在使用此行为 POST 方法创建路由:

Route::post('/tambah', 'JurnalController@tambahJurnal');

但是,您正在尝试使用浏览器在 URL 上执行 GET 请求。这就是您收到该错误的原因。

也尝试添加这一行:

Route::get('/tambah', 'JurnalController@tambahJurnal');

尝试表单操作 ="/tambah" 尝试 Route::any('/坦巴', 'JurnalController@tambahJurnal'); 首先,如果它工作正常,你可以更改为 Route::post('/坦巴', 'JurnalController@tambahJurnal');

any 将适用于 get post put ....

更改此行

Route::post('/tambah', 'JurnalController@tambahJurnal');

Route::post('tambah', 'JurnalController@tambahJurnal')->name('tambah');

并使用 blade Form

<h1>Tambah Jurnal</h1>

{!! Form::open(['route' => 'tambah','method' => 'POST','class' => 'tambahJurnal']) !!}
   <div class="">
     No jurnal
     <input type="text" name="no_jurnal" value="">
   </div>

   <div class="">
     Tgl Jurnal
     <input type="date" name="tgl_jurnal" value="">
   </div>

   <div class="">
     Keterangan
     <input type="textarea" name="keterangan" value="">
   </div>

   <input type="submit" name="" value="Submit">
{!! Form::close() !!}

使用 blade Form 的优点是,您不需要明确指定 {{ csrf_field() }},blade 注入 csrf token 本身。

添加路线以显示视图

 Route::get('/tambah', 'JurnalController@index');

并将索引方法添加到您的控制器

 public function index(){
   return view("tambah");
 }

同时添加/

 action="{{ route('/tambah') }}"

有时碰巧你在 /tambah 并试图 post url 变成 /tambah/tambah

#1。在您的路线文件中添加此路线。

Route::get('/tambah', function() { return view('tambah'); });

#2。 tambah.blade.php 文件中的更改

<form method="post" class="tambahJurnal" action="{{ route('tambah') }}" >

<form method="post" class="tambahJurnal" action="{{ url('tambah') }}" >

谢谢