我只是在嘗試更新資料時遇到錯誤。我使用的是post方法而不是push。我嘗試添加 @method('PUT') 但這也不起作用。
創建新類別可以正常作業,但是當我嘗試編輯某些內容時,它只會引發錯誤。我也嘗試使用 route::put 但這沒有用。
我的 CategoryController.php
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Category;
use Illuminate\Http\Request;
class CategoryController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data = Category::all();
return view('admin.category.index', [
'data' => $data
]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.category.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = new Category;
$data->parent_id = 1;
$data->title = $request->title;
$data->keywords = $request->keywords;
$data->description = $request->description;
$data->status = $request->status;
$data->save();
return redirect('admin/category');
}
/**
* Display the specified resource.
*
* @param \App\Models\Category $category
* @return \Illuminate\Http\Response
*/
public function show(Category $category)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Category $category
* @return \Illuminate\Http\Response
*/
public function edit(Category $category, $id)
{
//
$data = Category::find($id);
return view('admin.category.edit', [
'data' => $data
]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Category $category
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Category $category, $id)
{
//
$data = Category::find($id);
$data->parent_id = 1;
$data->title = $request->title;
$data->keywords = $request->keywords;
$data->description = $request->description;
$data->status = $request->status;
$data->save();
return redirect('admin/category');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Category $category
* @return \Illuminate\Http\Response
*/
public function destroy(Category $category)
{
//
}
}
我的edit.blade.php
@extends('layouts.adminbase')
@section('title', 'Edit Category')
@section('content')
<!-- Begin Page Content -->
<div class="container-fluid">
<!-- Page Heading -->
<h1 class="h3 mb-4 text-gray-800">Edit Category: {{$data -> title}}</h1>
<!-- Collapsable Card-->
<div class="card shadow mb-4">
<!-- Card Header - Accordion -->
<a href="#collapseCardExample" class="d-block card-header py-3" data-toggle="collapse"
role="button" aria-expanded="true" aria-controls="collapseCardExample">
<h6 class="m-0 font-weight-bold text-primary">Category Elements</h6>
</a>
<!-- Card Content - Collapse -->
<div class="collapse show" id="collapseCardExample">
<div class="card-body">
<form action="/admin/category/update/{{$data->id}}" method="POST">
@csrf
<div hljs-string">">
<div hljs-string">">
<label for="exampleInputEmail1">Title</label>
<input type="text" hljs-string">" name="title" value="{{$data->title}}">
</div>
<div hljs-string">">
<label for="exampleInputEmail1">Keywords</label>
<input type="text" hljs-string">" name="keywords" value="{{$data->keywords}}">
</div>
<div hljs-string">">
<label for="exampleInputEmail1">Description</label>
<input type="text" hljs-string">" name="description" value="{{$data->description}}">
</div>
<div hljs-string">">
<label for="exampleInputFile">Image</label>
<div hljs-string">">
<div hljs-string">">
<input type="file" hljs-string">" name="image">
<label hljs-string">" for="exampleInputFile">Choose image file</label>
</div>
<div hljs-string">">
<span hljs-string">">Upload</span>
</div>
</div>
</div>
<div hljs-string">">
<label>Status</label>
<select hljs-string">" name="status">
<option selected>{{$data->status}}</option>
<option>Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<!-- /.card-body -->
<div hljs-string">">
<button type="submit" hljs-string">">Update Data</button>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
@endsection
我的路線
// Admin category routes
Route::get('/admin/category', [AdminCategoryController::class,'index'] )->name('admin_category');
Route::get('/admin/category/create', [AdminCategoryController::class,'create'] )->name('admin_category_create');
Route::post('/admin/category/store', [AdminCategoryController::class,'store'] )->name('admin_category_store');
Route::get('/admin/category/edit/{id}', [AdminCategoryController::class,'edit'] )->name('admin_category_edit');
Route::post('/admin/category/update/{id}', [AdminCategoryController::class,'edit'] )->name('admin_category_update');
uj5u.com熱心網友回復:
我會對您的代碼進行這些修改:edit.blade:
<form action="/admin/category/update/{{$data->id}}" method="POST">
@csrf
@method('PUT')
.........
路線:
Route::put('/admin/category/update/{id}', [AdminCategoryController::class,'update'] )->name('admin_category_update');
檢查它是否有效。
還有一件事:如果您正確創建了模型系結,您的更新函式可能如下所示:
public function update(Request $request, Category $category, $id)
{
//
$category->parent_id = 1;
$category->title = $request->title;
$category->keywords = $request->keywords;
$category->description = $request->description;
$category->status = $request->status;
$category->save();
return redirect('admin/category');
}
那是因為你已經有了模型:public function update(Request $request, **Category $category**, $id)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/487866.html
