找不到Laravel 5.7编辑路线页面中的错误

时间:2018-10-13 06:24:07

标签: laravel laravel-5 eloquent laravel-5.5 laravel-5.7

Laravel 5.7版 PHP 7 +

我创建了一个资源控制器-> CategoryController [具有所有魔术方法]

这是路由/web.php

Route::group(['as'=>'admin.','middleware'=>['auth','admin'],'prefix'=>'admin'], function(){
    Route::get('/dashboard','AdminController@dashboard')->name('dashboard');

    // product resource controller methods
    // check php artisan r:l
    Route::resource('product', 'ProductController');
    Route::resource('category', 'CategoryController');

    Route::resource('profile', 'ProfileController');
    Route::post('remove', 'CategoryController@remove')->name('category.remove');
});
enter image description here


现在您可以看到,我对其中一个类别使用“ http://127.0.0.1:8000/admin/category/1/edit”进行编辑,类别ID = 1,该类别ID也存储在数据库中。

<?php

namespace App\Http\Controllers;

use App\Category;
use Illuminate\Http\Request;

class CategoryController extends Controller
{
    public function index()
    {
        $categories = Category::paginate(3);
        return view('admin.categories.index',compact('categories'));
    }
    
    public function edit(Category $category)
    {
        return "This is category edit page";
        // dd($category);
        //  $categories = Category::where('id','!=', $category->id)->get();
        // //  dd($categories);
        // return "This is category edit page";
        //  return view('admin.categories.create',['categories' => $categories, 'category'=>$category]);
    }

当我尝试转到此编辑类别页面时,它显示404页面未找到错误。

尽管,当我使用闭包函数为编辑方法制作一条单独的路线以返回一些文本时,它仍然可以正常工作。

    Route::get('category/{category}/edit', function($category){
        return $category;
    })->name('category.edit');

2 个答案:

答案 0 :(得分:3)

您没有排除所得到的全部错误,而是尝试更改:

public function edit(Category $category)
{
    return "This is category edit page";
}

进入:

public function edit($category)
{
    return "This is category edit page";
}

,看看是否有帮助。如果有帮助,则意味着没有与您传递的记录匹配的ID,或者该记录已被软删除(或不满足某些其他条件)-Laravel使用Route模型绑定来匹配有效的记录。

答案 1 :(得分:0)

尝试

public function edit(Request $category)
{
    return "This is category edit page";
}