簡體   English   中英

如何使用Laravel將數據插入數據庫

[英]How to insert data to database with Laravel

我正在嘗試將我的數據從表單插入數據庫。

我用於創建數據的URL是web.com/siswa/create

但是,當我單擊提交系統時,顯示錯誤MethodNotAllowedHttpException

我該如何解決? 我的代碼有什么問題嗎?

這是我的表格:

<form action="{{ url('siswa') }}" method="POST">
      <div class="form-group">
         <label for="exampleInputEmail1">NISN</label>
          <input type="text" class="form-control" name="nisn" id="nisn" placeholder="NISN"></div>
         <div class="form-group">
         <label for="exampleInputEmail1">Nama Siswa</label>
         <input type="text" class="form-control" name="nama_siswa" id="nama_siswa" placeholder="Nama Siswa"> </div>
         <button type="submit" class="btn btn-success btn-sm font-weight-bold">Submit</button></form>

控制器:

public function tambah()
    {
      return view('siswa.create');
    }

    public function store(Request $request)
      {

        $siswa = new \App\Siswa;
        $siswa->nisn = $request->nisn;
        $siswa->nama_siswa = $request->nama_siswa;
        $siswa->tanggal_lahir = $request->tanggal_lahir;
        $siswa->jenis_kelamin = $request->jenis_kelamin;
        $siswa->save();
        return redirect('siswa');
      }

路線:

Route::get('/siswa/create', [
    'uses' => 'SiswaController@tambah',
    'as' => 'tambah_siswa'
]);

Route::get('/siswa', [
    'uses' => 'SiswaController@store',
    'as' => 'simpan_siswa'
]);

getpost更改store功能路線

Route::post('/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
]);

在表單中將Csrf保護字段用於會話超時錯誤

{{ csrf_field() }}

要么

<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />

或者,如果您使用的是表單構建器

{!! Form::token() !!}

在路線中,請使用post而不是get

Route::post('/siswa','SiswaController@store');

並且還包含{{ csrf_field() }}的形式

您在表單上使用method="POST" ,但是在您的路線中使用的是Route::get

使用Route::post作為您的路線

在您的表單中,您提供了POST方法,但您的路由器沒有任何POST處理程序。 因此,您要做的就是,當您嘗試將數據從表單存儲到DB時,您必須發布數據,並且路由器應該處理它。

嘗試這個

Route::post('/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
]);

您在表單中使用POST方法,並且在路由中使用GET。

嘗試這個

Route::post( '/siswa', [
    'uses' => 'SiswaController@store',
    'as'   => 'simpan_siswa'
] );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM