Saya memfaktorkan ulang kode saya dan mendapatkan kesalahan 404 Halaman tidak ditemukan dalam satu rute. Saya mencoba setiap solusi yang mungkin tetapi tidak berhasil. Rute saya berikan di bawah ini:

Route::prefix('admin')->group(function () {
    .... other routes
    
    Route::prefix('product')->group(function () {
        .... other routes

        Route::prefix('category')->group(function () {
            Route::get('/', function () {
                dd('check');
            });

            <!-- Route::get('/', 'ProductCategoryController@index')->name('product_category_index'); -->
           
            .... other routes

        });
    });
});

Di debugbar saya mendapatkan pengecualian:

Tidak ada hasil kueri untuk kategori model [App\Product] F:\bvend\bvend.web\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Builder.php#389 Illuminate\Database\Eloquent\ModelNotFoundException

Saya tidak lagi memiliki model App\Category dalam kode saya. Sebaliknya saya memiliki App\ProductCategory

Saya tidak tahu apa kesalahannya. Tolong bantu.

0
WahidSherief 7 Juli 2020, 17:57

1 menjawab

Jawaban Terbaik

Masalahnya adalah bahwa dua rute saling bertentangan.

Katakanlah Anda memiliki dua rute berikut dengan urutan sebagai berikut:

admin/product/{product}

admin/product/category

Saat Anda mencoba mengakses admin/product/category, Anda sebenarnya mengakses admin/product/{product} dengan category sebagai nilai untuk parameter rute {product}.

Itulah mengapa Anda mendapatkan kesalahan No query results for model [App\Product] category, ia mencoba mencari produk dengan id category.

Sekarang jika Anda mengubah urutannya:

admin/product/category

admin/product/{product}

Sekarang rute admin/product/category memiliki prioritas lebih tinggi daripada admin/product/{product}, jadi Anda sebenarnya dapat mengakses rute yang Anda inginkan, alih-alih dicocokkan dengan rute admin/product/{product}.

2
Remul 7 Juli 2020, 15:30