我正试图将数据从报表表插入数据库,但它给了我一个很大的错误



你好,我是Laravel的新手,试图创建一个多页表单——第一个表单(名称(将数据插入数据库,但第二个表单(报告(给了我一个错误。PUT方法不支持此路由。支持的方法:POST。有人能帮我解决这个问题吗。我读到了关于会话的内容,但我不知道是否应该将其与这种类型的表单一起使用

控制器

<?php
namespace AppHttpControllers;
use IlluminateSupportFacadesDB;
use IlluminateHttpRequest;
class MultiformController extends Controller
{
public function ChooseLang(){
return view('multiform.language');
}
public function NameMentionded(){
return view('multiform.name');
}
public function ViewMentionName(){
return view('multiform.mentionname');
}
public function AddNameMentionded(Request $request){
$request->validate([
'empname' => 'required',
'empnum' => 'required',
]);
$query = DB::table('multiforms')->insert([
'empname'=>$request->input('empname'),
'empnum'=>$request->input('empnum'),
]);
return view('multiform.report');
}
public function ReportPerson(Request $request){
return view('multiform.report');
}
public function AddReportPerson(Request $request){
$request->validate([
'incnam'=> 'required',
'incnum' => 'required',
'inctype'=> 'required',
'incday'=> 'required',
'incatt'=> 'required',
'incterm'=> 'required',
'inctdes'=> 'required',
'inncity'=> 'required',
]);
$query = DB::table('multiforms')->insert([
'empname'=>$request->input('empname'),
'empnum'=>$request->input('empnum'),
'incnam'=>$request->input('incnam'),
'incnum'=>$request->input('incnum'),
'inctype'=>$request->input('inctype'),
'incday'=>$request->input('incday'),
'incatt'=>$request->input('incatt'),
'incterm'=>$request->input('incterm'),
'inctdes'=>$request->input('inctdes'),
'inncity'=>$request->input('inncity'),
]);
if($query){
return back()->with('success','Data have been successfuly inserted ');
}else{
return back()->with('fall','Something went wrong ');
}
}
}

路由

<?php
use IlluminateSupportFacadesRoute;
use AppHttpControllersMultiformController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('test');
});
/// multipage  form
Route::controller(MultiformController::class)->group(function(){
Route::get('/index','ChooseLang')->name('choose.lang');
Route::get('/MentionName','MentionName')->name('choose.lang');
Route::get('/name','NameMentionded')->name('name.mentioned');
Route::post('/add','AddNameMentionded')->name('addname.mentioned');
Route::get('/report','ReportPerson')->name('report.person');
Route::post('/addreport','AddReportPerson')->name('addreported.name');
});

Route::get('/dashboard', function () {
return view('admin.index');
})->middleware(['auth','verified'])->name('dashboard');
require __DIR__.'/auth.php';

名称.叶片

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Dashboard | Makassed Speak </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="Premium Multipurpose Admin & Dashboard Template" name="description" />
<meta content="Themesdesign" name="author" />
<!-- App favicon -->
<link rel="shortcut icon" href="{{ asset('backend/assets/images/favicon.ico') }}">
<!-- jquery.vectormap css -->
<link href="{{ asset('backend/assets/libs/admin-resources/jquery.vectormap/jquery-jvectormap-1.2.2.css') }}" rel="stylesheet" type="text/css" />
<!-- DataTables -->
<link href="{{ asset('backend/assets/libs/datatables.net-bs4/css/dataTables.bootstrap4.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Responsive datatable examples -->
<link href="{{ asset('backend/assets/libs/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Bootstrap Css -->
<link href="{{ asset('backend/assets/css/bootstrap.min.css') }}" id="bootstrap-style" rel="stylesheet" type="text/css" />
<!-- Icons Css -->
<link href="{{ asset('backend/assets/css/icons.min.css') }}" rel="stylesheet" type="text/css" />
<!-- App Css-->
<link href="{{ asset('backend/assets/css/app.min.css') }}" id="app-style" rel="stylesheet" type="text/css" />
<!-- App bootstrap-->
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.css" >
<!-- App toastr-->
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.css" >
<!-- App datepicker-->
<link href="{{asset('backend/assets/libs/bootstrap-datepicker/css/bootstrap-datepicker.min.css')}}" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row" style="margin-top:50px;";>
<br>
</div>
</div>
<form class="needs-validation" action="add" method="POST"  novalidate="">
@csrf
<div class="container">
<div class="step-one col-md-6 offset-md-3">
<div class="card">
<div class="card-header bg-secondary text-white">Emlpoyee Name</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="validationCustom01" class="form-label">Employee Name </label>
<input type="text" class="form-control" id="validationCustom01" name="empname" placeholder=""  required="">
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="validationCustom02" class="form-label"> Employee #</label>
<input type="text" class="form-control" id="validationCustom02" name="empnum"  placeholder=""  required="">
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Next</button>
</div>
</form>
<script src="{{asset('backend/assets/libs/jquery/jquery.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/metismenu/metisMenu.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/simplebar/simplebar.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/node-waves/waves.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/parsleyjs/parsley.min.js')}}"></script>
<script src="{{asset('backend/assets/js/pages/form-validation.init.js')}}"></script>
<script src="{{asset('backend/assets/js/app.js')}}"></script>
</body>
</html>

报告。刀片

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Dashboard | Makassed Speak </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="Premium Multipurpose Admin & Dashboard Template" name="description" />
<meta content="Themesdesign" name="author" />
<!-- App favicon -->
<link rel="shortcut icon" href="{{ asset('backend/assets/images/favicon.ico') }}">
<!-- jquery.vectormap css -->
<link href="{{ asset('backend/assets/libs/admin-resources/jquery.vectormap/jquery-jvectormap-1.2.2.css') }}" rel="stylesheet" type="text/css" />
<!-- DataTables -->
<link href="{{ asset('backend/assets/libs/datatables.net-bs4/css/dataTables.bootstrap4.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Responsive datatable examples -->
<link href="{{ asset('backend/assets/libs/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Bootstrap Css -->
<link href="{{ asset('backend/assets/css/bootstrap.min.css') }}" id="bootstrap-style" rel="stylesheet" type="text/css" />
<!-- Icons Css -->
<link href="{{ asset('backend/assets/css/icons.min.css') }}" rel="stylesheet" type="text/css" />
<!-- App Css-->
<link href="{{ asset('backend/assets/css/app.min.css') }}" id="app-style" rel="stylesheet" type="text/css" />
<!-- App bootstrap-->
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/bootstrap.tagsinput/0.8.0/bootstrap-tagsinput.css" >
<!-- App toastr-->
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.css" >
<!-- App datepicker-->
<link href="{{asset('backend/assets/libs/bootstrap-datepicker/css/bootstrap-datepicker.min.css')}}" rel="stylesheet">
</head>
<body>
<br><br>
<div class="container">
<div class="step-one col-md-6 offset-md-3">
<div class="card">
<div class="card-header bg-secondary text-white">Incident Reported on
</div>
<div class="card-body">
<form class="needs-validation" action="addreport" method="POST" novalidate="">
@csrf
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="validationCustom01" class="form-label">REPORTED PERSON</label>
<input type="text" class="form-control" name="incnam" id="validationCustom01" placeholder=""  required="">
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="validationCustom02" class="form-label">REPORTED EMPLOYEE #</label>
<input type="text" class="form-control" id="validationCustom02" name="incnum" placeholder=""  required="">
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="mb-3">
<label for="validationCustom03" class="form-label">INCIDENT TYPE</label>
<select class="form-select" name="inctype" id="validationCustom03" required="">
<option selected="" disabled="" value="">Choose...</option>
<option>THEFT</option>
<option>NON COMPLIANCE WITH COMPANY POLICY</option>
<option>ABUSING POWER</option>
<option>USING COMPANY PROPERTY FOR PERSONAL INTEREST</option>
<option>NEGLIGENCE</option>
</select>
<div class="invalid-feedback">
Please select a valid state.
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="mb-3">
<label>INCIDENT DETAILS
</label>
<div>
<textarea name="inctdes" required="" class="form-control" rows="5"></textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="mb-3">
<label for="validationCustom03" class="form-label">INCIDENT CITY</label>
<select class="form-select" id="validationCustom03" required="">
<option selected="" name="inncity"  disabled="" value="">Choose...</option>
<option>Beirut</option>
<option>North</option>
<option>South</option>
</select>
<div class="invalid-feedback">
Please select a valid state.
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-4">
<label class="form-label">INCIDENT DATE
</label>
<div class="input-group" id="datepicker2">
<input type="text" name="incday" class="form-control" placeholder="dd M, yyyy" data-date-format="dd M, yyyy" data-date-container="#datepicker2" data-provide="datepicker" data-date-autoclose="true">
<span class="input-group-text"><i class="mdi mdi-calendar"></i></span>
</div><!-- input-group -->
</div>
<div class="invalid-feedback">
Please select a valid Date.
</div>
</div>




<div class="col-md-6">
<div class="mb-4">
<div class="input-group">
<label class="form-label">UPLOAD ATTACHEMENT IF ANY
</label>
<input type="file" name="incatt" class="form-control" id="customFile">
</div>
<div class="invalid-feedback">
Please select a valid state.
</div>
</div>
</div>
</div>
<div class="form-check mb-3">
<input class="form-check-input" name="incterm" type="checkbox" value="" id="invalidCheck" required="">
<label class="form-check-label" for="invalidCheck">
I confirm that, all above provided information is correct.</label>
<div class="invalid-feedback">
You must agree before submitting.
</div>
</div>
<div>
<button class="btn btn-primary" type="submit">Submit form</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="{{asset('backend/assets/libs/jquery/jquery.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/metismenu/metisMenu.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/simplebar/simplebar.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/node-waves/waves.min.js')}}"></script>
<script src="{{asset('backend/assets/libs/parsleyjs/parsley.min.js')}}"></script>
<script src="{{asset('backend/assets/js/pages/form-validation.init.js')}}"></script>
<script src="{{asset('backend/assets/js/app.js')}}"></script>
<script src="{{asset('backend/assets/libs/bootstrap-datepicker/js/bootstrap-datepicker.min.js')}}"></script>
</body>
</html>

尝试更改视图调用,以便在方法AddNameMenteded上重定向到报表表单页面。

#instead
return view('multiform.report');
#do
return redirect('/report');

相关内容

最新更新