[英]I am trying to insert data into database from report table but it is giving me an error laravel
Hello I am new to Laravel trying to create a multi page form the first form (name) it insert data to database but the second form (report) it is giving me an error The PUT method is not supported for this route.您好,我是 Laravel 的新手,试图创建一个多页表单,第一个表单(名称)将数据插入数据库,但第二个表单(报告)给我一个错误这条路线不支持 PUT 方法。 Supported methods: POST.
支持的方法:POST。 could anyone help me solve this problem.
谁能帮我解决这个问题。 I read about session but I do not know if should I use it with this type of form.
我阅读了有关 session 的信息,但我不知道是否应该将它与这种类型的表格一起使用。
Controllers控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
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 ');
}
}
}
Routes路线
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\MultiformController;
/*
|--------------------------------------------------------------------------
| 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';
name.blade名称.blade
<!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>
Report.blade报表刀片
<!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>
Try to change the view call for a redirect to the report form page on method AddNameMentionded.尝试更改视图调用以重定向到方法 AddNameMentionded 上的报告表单页面。
#instead
return view('multiform.report');
#do
return redirect('/report');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.