Ошибка в Laravel 5.7. Страница редактирования маршрута не найдена - PullRequest
0 голосов
/ 13 октября 2018

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, которая также хранится в базе данных.

<?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 голосов
/ 13 октября 2018

попробуйте

public function edit(Request $category)
{
    return "This is category edit page";
}
0 голосов
/ 13 октября 2018

Вы не исключили полную ошибку, которую получаете, но попробуйте изменить:

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

на:

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

и посмотрите, поможет ли это.Если это помогает, это означает, что нет идентификатора совпадения с записью, который вы передали, или эта запись мягко удалена (или некоторые дополнительные условия не выполняются) - Laravel использует привязку модели маршрута для сопоставления с действительной записью.

...