我在使用 route::middleware 中的 post 方法將表單上傳到資料庫時遇到問題,并收到類似這樣的錯誤 此路由不支持 POST 方法。支持的方法:GET、HEAD。
我不知道在哪里再次檢查它。請幫助我。我已經從這里的另一篇文章中解決了,但它仍然沒有解決。
網頁.php
Route::middleware(['auth', 'isAdmin'])->group(function () {
Route::get('/dashboard','App\Http\Controllers\Admin\FrontendController@index');
Route::get('categories','App\Http\Controllers\Admin\CategoryController@index');
Route::get('add-category','App\Http\Controllers\Admin\CategoryController@add');
Route::get('insert-category','App\Http\Controllers\Admin\CategoryController@insert'); });
類別控制器.php
public function insert(Request $request)
{
$category = new Category();
if($request->hasFile('image')->isValid())
// {
// $file = $request->file('image');
// $ext = $file->getClientOriginalExtension();
// $filename = time().'.'.$ext;
// $file->move('assets/uploads/category',$filename);
// $category->image = $filename;
// }
$category->name = $request->input('name');
$category->slug = $request->input('slug');
$category->description = $request->input('description');
$category->status = $request->input('status') == TRUE ? '1':'0';
$category->popular = $request->input('popular') == TRUE ? '1':'0';
$category->meta_title = $request->input('meta_title');
$category->meta_keywords = $request->input('meta_keywords');
$category->meta_descrip = $request->input('meta_description');
$category->save();
return redirect('/dashboard')->with('status',"Category Added Succesfully");
}
這是模型 Category.php
class Category extends Model{
use HasFactory;
protected $table = 'categories';
protected $fillable = [
'name',
'slug',
'description',
'status',
'popular',
'image',
'meta_title',
'meta_descrip',
'meta_keywords',
];}
這是我的表格 add.blade.php
<form action="{{ url('insert-category') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="row">
<div class="col-md-6 mb-3">
<label for="">Name</label>
<input type="text" class="form-control" name="name">
</div>
<div class="col-md-6 mb-3">
<label for="">Slug</label>
<input type="text" class="form-control" name="slug">
</div>
<div class="col-md-12 mb-3">
<label for="">Description</label>
<textarea name="description" rows="3" class="form-control"></textarea>
</div>
<div class="col-md-6 mb-3">
<label for="">Status</label>
<input type="checkbox" class="form-control" name="status">
</div>
<div class="col-md-6 mb-3">
<label for="">Popular</label>
<input type="checkbox" class="form-control" name="popular">
</div>
<div class="col-md-12 mb-3">
<label for="">Meta_title</label>
<input type="text" class="form-control" name="meta_title">
</div>
<div class="col-md-12 mb-3">
<label for="">Meta_Keyword</label>
<textarea name="meta_keywords" rows="3" class="form-control"></textarea>
</div>
<div class="col-md-12 mb-3">
<label for="">Meta_Description</label>
<textarea name="meta_description" rows="3" class="form-control"></textarea>
</div>
<div class="col-md-12 mb-3">
<input type="file" class="form-control" name="image">
</div>
<div class="col-md-12">
<button type="submit" class="form-control btn btn-primary">Submit</button>
</div>
</div>
</div>
</form>
uj5u.com熱心網友回復:
insert-category 應該是 POST 路由而不是 GET 即
Route::post('insert-category','App\Http\Controllers\Admin\CategoryController@insert');
uj5u.com熱心網友回復:
使用代碼:
Route::middleware(['auth', 'isAdmin'])->group(function () {
Route::get('/dashboard','App\Http\Controllers\Admin\FrontendController@index');
Route::get('categories','App\Http\Controllers\Admin\CategoryController@index');
Route::get('add-category','App\Http\Controllers\Admin\CategoryController@add');
Route::post('insert-category','App\Http\Controllers\Admin\CategoryController@insert');
});
我還建議使用這種結構化路由:
使用命名空間:
use App\Http\Controllers\Admin\CategoryController;
和路由:
Route::post('insert-category', [CategoryController::class, 'insert'])
->name('insert-category');
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/460489.html
