我正在尝试将数据从表单插入数据库。
我用于创建数据的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'
]);
答案 0 :(得分:4)
将store
的功能路线从get
更改为post
Route::post('/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
]);
在表单中使用Csrf保护字段以防止会话超时错误
{{ csrf_field() }}
OR
<input type="hidden" name="_token" id="csrf-token" value="{{ Session::token() }}" />
或者如果您使用的是表单生成器
{!! Form::token() !!}
答案 1 :(得分:3)
在路线中,请使用post
代替get
Route::post('/siswa','SiswaController@store');
,并且还包括
形式的{{ csrf_field() }}
答案 2 :(得分:0)
您在表单上使用"../node_modules/chart.js/dist/Chart.js",
"../node_modules/chart.js/dist/Chart.bundle.js",
"../node_modules/chart.js/dist/Chart.min.js",
"../node_modules/chart.js/dist/Chart.bundle.min.js"
import { Chart } from 'chart.js';
import { ChartModule } from 'primeng/primeng';
,但在您的路线中使用df = pd.read_csv(file, header=None, error_bad_lines=False)
将method="POST"
用于您的路线
答案 3 :(得分:0)
在您的表单中,您提供了POST方法,但您的路由器没有任何POST处理程序。因此,您所要做的就是,当您尝试将数据从表单存储到DB时,您必须发布数据,并且路由器应进行处理。
尝试一下
Route::get
答案 4 :(得分:0)
您正在表单中使用POST方法,并且在路由中使用GET。
尝试
Route::post( '/siswa', [
'uses' => 'SiswaController@store',
'as' => 'simpan_siswa'
] );