我想在管理仪表板上创建CRUD,但是当我单击submit按钮时,我得到了一条错误消息:“这个路由不支持POST方法。支持的方法: GET,HEAD”。
My View
@extends('layouts.admin')
@section('content')
<div class="row">
<div class="col-md-12">
<div class="card">
<div class="card-header">
<h3>Add Products
<a href="{{ url('admin/products') }}" class="btn btn-danger btn-sm text-white float-end">BACK</a>
</h3>
</div>
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{ url('admin/products') }}" method="POST" enctype="multipart/form-data">
@csrf
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab"
data-bs-target="#home-tab-pane" type="button" role="tab"
aria-controls="home-tab-pane" aria-selected="true">Home</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="seotag-tab" data-bs-toggle="tab"
data-bs-target="#seotag-tab-pane" type="button" role="tab"
aria-controls="seotag-tab-pane" aria-selected="false">SEO
Tags</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="details-tab" data-bs-toggle="tab"
data-bs-target="#details-tab-pane" type="button" role="tab"
aria-controls="details-tab-pane" aria-selected="false">Details</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="image-tab" data-bs-toggle="tab"
data-bs-target="#image-tab-pane" type="button" role="tab"
aria-controls="image-tab-pane" aria-selected="false">Product Image</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade border p-3 show active" id="home-tab-pane" role="tabpanel"
aria-labelledby="home-tab" tabindex="0">
<div class="md-3">
<label>Product Name</label>
<input type="text" name="name" class="form-control">
</div>
<div class="md-3">
<label>Product Slug</label>
<input type="text" name="name" class="form-control">
</div>
<div class="md-3">
<label>Small Description (500 Words)</label>
<textarea name="small_description" class="form-control" rows="4"></textarea>
</div>
<div class="md-3">
<label>Description</label>
<textarea name="description" class="form-control" rows="4"></textarea>
</div>
</div>
<div class="tab-pane fade border p-3" id="seotag-tab-pane" role="tabpanel"
aria-labelledby="profile-tab" tabindex="0">
<div class="md-3">
<label>Meta Title</label>
<input type="text" name="meta_title" class="form-control">
</div>
<div class="md-3">
<label>Meta Description</label>
<textarea name="small_description" class="form-control" rows="4"></textarea>
</div>
<div class="md-3">
<label>Meta Keyword</label>
<textarea name="meta_keyword" class="form-control" rows="4"></textarea>
</div>
</div>
<div class="tab-pane fade border p-3" id="details-tab-pane" role="tabpanel"
aria-labelledby="details-tab" tabindex="0">
<div class="row">
<div class="col-md-4">
<div class="md-3">
<label>Original Price</label>
<input type="text" name="original_price" class="form-control">
</div>
</div>
<div class="col-md-4">
<div class="md-3">
<label>Selling Price</label>
<input type="text" name="selling_price" class="form-control">
</div>
</div>
<div class="col-md-4">
<div class="md-3">
<label>Quantity</label>
<input type="number" name="quantity" class="form-control">
</div>
</div>
<div class="col-md-4">
<div class="md-3">
<label>Trending</label>
<input type="checkbox" name="trending" style="width: 50px; height; 50px;" />
</div>
</div>
<div class="col-md-4">
<div class="md-3">
<label>Status</label>
<input type="checkbox" name="status" style="width: 50px; height; 50px;" />
</div>
</div>
</div>
</div>
<div class="tab-pane fade border p-3" id="image-tab-pane" role="tabpanel"
aria-labelledby="image-tab" tabindex="0">
<div class="mb-3">
<label>Upload Product Images</label>
<input type="file" name="image" multiple class="form-control" />
</div>
</div>
</div>
</div>
<div>
<button type="submit" class="btn btn-primary text-white">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection控制器
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProductFormRequest;
use App\Models\Product;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
class ProductController extends Controller
{
public function index()
{
$product = Product::latest()->paginate(5);
return view('admin.products.index');
}
public function create()
{
return view('admin.products.create');
}
public function store(Request $request)
{
$this->validate($request, [
'name' => 'require|string|min:5',
'slug' => 'require|string|min:5',
'small_description' => 'require|string',
'description' => 'require|string',
'original_price' => 'require|integer',
'selling_price' => 'require|integer',
// 'trending' => 'nullable',
// 'status' => 'nullable',
'meta_title' => 'require|string|max:255',
'meta_keyword' => 'require|string',
'meta_description' => 'require|string',
'image' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);
// upload new image
$image = $request->file('image');
$image->storeAs('admin/products', $image->hashName());
Product::create([
'name' => $request->name,
'slug' => $request->slug,
'small_description' => $request->small_description,
'description' => $request->description,
'original_price' => $request->original_price,
'selling_price' => $request->selling_price,
'meta_title' => $request->meta_title,
'meta_keyword' => $request->meta_keyword,
'meta_description' => $request->meta_description,
'image' => $image->hashName()
]);
//redirect to index
return redirect()->route('admin.products.index')->with(['success' => 'Data Berhasil Disimpan!']);
}
}我的路线
Route::controller(App\Http\Controllers\Admin\ProductController::class)->group(function (){
Route::get('/products','index');
Route::get('/products/create','create');
Route::post('/admin/products','store');
});我想屈服。但是,当我单击submit按钮时,我得到了以下错误消息:“这个路由不支持POST方法。支持的方法: GET,HEAD”在这里输入图像描述。
发布于 2022-08-28 08:08:51
你的密码在我看来没问题。
我也犯了同样的错误,请尝试清除路由缓存,希望这将解决您的问题。
命令:
php artisan route:cachehttps://stackoverflow.com/questions/73516799
复制相似问题