【问题标题】:Cannot Edit item in CRUD using Laravel 8无法使用 Laravel 8 在 CRUD 中编辑项目
【发布时间】:2021-02-20 09:37:21
【问题描述】:

我在 Laravel 8 中制作 CRUD,即使我在 index.blade.php 文件中添加了带有类别 ID 的路由名称,我也无法在 CRUD 中制作编辑类别,我收到此错误,我在此处发布之前多次检查了该文件,仍然我没有发现错误...请帮助我

enter image description here

edit.blade.php

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Edit Category</div>

                <div class="card-body">
                    @if (count($errors) > 0)
                        <div class="alert alert-danger">
                            @foreach ($errors->all() as $error)
                                <ul>
                                    <li>{{ $error }}</li>
                                </ul>
                            @endforeach
                        </div>
                    @endif 
                    <form action="{{ route('category.update', ['id' => $category->id]) }}" method="post">
                        @csrf
                        {{-- @method('PUT') --}}
                        <div class="form-group">
                            <label for="name">Category Name</label>
                            <input type="text" class="form-control" name="name" value="{{ $category->name }}">
                        </div>                      
                        <button type="submit" class="btn btn-primary">Update</button>
                    </form>        
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

类别控制器

    public function edit(Category $category)
    {
        return view('category.edit')->with(['category' => $category]);
    }

   public function update(Request $request, Category $category)
    {
        $request->validate([

            'name' => 'required|min:3|max:255',

        ]);

        // $category->name = $request['name'];

        // $category->update();

        $category->update($request->all());

        return redirect()->route('category.index')->with('category_updated', 'Category has been updated');
    }

web.php

Route::prefix('user')->group(function () {
    
    Route::get('/categories', [CategoryController::class, 'index'])->name('category.index');

    Route::get('/category/create', [CategoryController::class, 'create'])->name('category.create');

    Route::post('/category', [CategoryController::class, 'store'])->name('category.store');

    Route::get('/category/{id}/edit', [CategoryController::class, 'edit'])->name('category.edit');

    Route::post('/category/{id}', [CategoryController::class, 'update'])->name('category.update');

    Route::delete('/category/{id}', [CategoryController::class, 'destroy'])->name('category.delete');

}); 

【问题讨论】:

    标签: php laravel-8


    【解决方案1】:

    你能改吗

       public function update(Request $request, Category $category)
    

       public function update(Request $request, $id)
    

    然后告诉我结果?

    试试这个,如果它有效,我们会改进它:

    public function update(Request $request, $id)
        {
            $request->validate([
    
                'name' => 'required|min:3|max:255',
    
            ]);
    
            $category = Category::find($id);
    
            // $category->name = $request['name'];
    
            // $category->update();
    
            $category->update($request->all());
    
            return redirect()->route('category.index')->with('category_updated', 'Category has been updated');
        }
    

    【讨论】:

    • 它给出了一个错误(未定义的变量'$category')
    • 至少你没有你之前的错误,所以你进入了下一步。
    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多