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

时间:2017-03-25 03:13:34

标签: php laravel laravel-5.3

<已解决(已解决)谢谢..

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

这是我的表格:

<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

6 个答案:

答案 0 :(得分:1)

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

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

但是,您尝试在该网址上使用浏览器执行GET请求。这就是你得到这个错误的原因。

尝试添加此行:

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

答案 1 :(得分:0)

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

<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>

答案 2 :(得分:0)

尝试表单动作=&#34; / tambah&#34; 尝试 Route :: any(&#39; / tambah&#39;,&#39; JurnalController @ tambahJurnal&#39;); 首先,如果它工作正常,你可以改为 Route :: post(&#39; / tambah&#39;,&#39; JurnalController @ tambahJurnal&#39;);

任何可以用于获得帖子....

答案 3 :(得分:0)

更改此行

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

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

并使用刀片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() !!}

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

答案 4 :(得分:0)

添加路线以显示视图

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

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

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

同时添加/

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

有时候您在/tambah并且尝试发布网址变为/tambah/tambah

答案 5 :(得分:0)

#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') }}" >

由于