下面是我的路由/web.php文件中的路由定义示例。
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\WidgetController;
Route::controller(WidgetController::class)->name('widgets.')->prefix('widgets')->group(function () {
Route::get('{id}/{slug}', 'show')->name('show');
Route::get('create', 'create')->name('create')->middleware('auth');
Route::post('store', 'store')->name('store')->middleware('auth');
Route::get('{id}/edit', 'edit')->name('edit')->middleware('auth');
Route::post('update', 'update')->name('update')->middleware('auth');
});除一条外,列出的所有路线都很好。
Route::get('{id}/edit', 'edit')->name('edit')->middleware('auth');不管出于什么原因,当它写成这样的时候,它完全可以正常工作:
Route::get('{id}', 'edit')->name('edit')->middleware('auth');或者这个:
Route::get('{id}//edit', 'edit')->name('edit')->middleware('auth');对于“路由::资源”,默认的是第一个“编辑”路由。然而,当像这样定义它时,我会得到一个404。我的关联控制器方法如下所示:
public function edit($id)
{
// Rest of code here
}可能是Laravel把“编辑”当成了第二个参数吗?但是,考虑到这是资源方法的默认设置,这并没有多大意义。
发布于 2022-02-20 04:18:54
试试看
路由:get(‘{id}/编辑’,‘编辑’)->nam
上图
路线:取得(‘{id}/{slug}’)
因为{slug}可能是任何东西,所以它更有可能先被执行。我建议把这个放在最后。
https://stackoverflow.com/questions/71191196
复制相似问题