Laravel 以某種方式獲得了 2 條不同路線的相同視圖,我不知道為什么,因為我對 Laravel 不太熟悉。
這是有問題的2條路線:
Route::get('/{label}', [BookController::class, 'listbyCat'])->name('bycats');
Route::get('/{id}', [BookController::class, 'singlebook'])->name('book');
第一條路線是回傳視圖(呼叫方法)的路線,這意味著如果我在它們之間切換,它會在兩條路線中呼叫 singlebook()。
HTML :
<a href="{{ route('book', $book->id) }}">Book</a>
<a href="{{ route('bycats', $cat->id) }}">Category</a>
uj5u.com熱心網友回復:
當你嘗試訪問任何資源時,你會在瀏覽器上撰寫路由,如果我只有兩個這樣的資源怎么辦:
Route::get('/book/{label}', [BookController::class, 'listbyCat'])->name('bycats');
Route::get('/book/{id}', [BookController::class, 'singlebook'])->name('book');
我正在嘗試訪問 localhost::8080/book/5
那么是什么告訴 laravel 從這條路由這條路由屬于哪一個資源呢?
沒有什么 !!原因5可以被認為是一個label或id
所以你應該將路由更改為可識別為laravel
嘗試更改其中一條路線,例如:
Route::get('/book/by/{label}', [BookController::class, 'listbyCat'])->name('bycats');
Route::get('/book/{id}', [BookController::class, 'singlebook'])->name('book');
uj5u.com熱心網友回復:
很明顯,當 laravel 沒有其他方法可以確定您想要的路由時,它將路由到它在路由表中的第一個路由。
這將是一個簡單的解決方法,可以說明您缺少什么。
Route::get('/cat/{label}', [BookController::class, 'listbyCat'])-name('bycats');
Route::get('/book/{id}', [BookController::class, 'singlebook'])->name('book');
每當您第一次遇到這樣的問題時,Artisan 都應該是您的轉到工具。
php artisan route:list
uj5u.com熱心網友回復:
Route::get('/cat{label}', [BookController::class, 'listbyCat'])->name('bycats');
Route::get('/book{id}', [BookController::class, 'singlebook'])->name('book');
試試這個,當你輸入鏈接時,添加 cat 和 book
ex- http://127.0.0.1:8000/cat
http://127.0.0.1:8000/book
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/379633.html
