[英]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'
]);
從get
到post
更改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.