【问题标题】:Getting error in Laravel 5.7 edit route page not found在 Laravel 5.7 中找不到编辑路由页面时出错
【发布时间】:2019-03-18 07:28:11
【问题描述】:

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');
});

现在如您所见,我的一个类别有“http://127.0.0.1:8000/admin/category/1/edit”要编辑,类别 id = 1,它也存储在数据库中。

<?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 page not found 错误。

虽然,当我使用闭包函数为编辑方法创建一个单独的路由以返回一些文本时,它工作得很好。

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

【问题讨论】:

  • 基本上控制器功能应该是这样的: public function edit($id) {} 。不是吗?
  • 您的代码是正确的,根据我的说法,可能是其他问题

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


【解决方案1】:

你没有排除你得到的完整错误,但尝试改变:

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

进入:

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

看看有没有帮助。如果有帮助,则表示没有与您传递的 id 匹配的记录或此记录被软删除(或某些附加条件不满足)- Laravel 使用 Route 模型绑定来匹配有效记录。

【讨论】:

  • 虽然我解决了错误,但你是对的,那是错误,模型类型提示。我将 id 作为参数传递,但 slug 是在 CategoryController 下的 getRouteKeyName 方法中定义的。
【解决方案2】:

试试这个

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

【讨论】:

  • 虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。
猜你喜欢
  • 2016-10-20
  • 1970-01-01
  • 2019-09-02
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多