Laravel 9路由问题return404 NOT FOUND
Laravel 9 Route problem return 404 NOT FOUND
我正在尝试渲染视图,但我总是得到 notfoud 404 我不知道如何解决这个问题,如果有人能帮助我,我将不胜感激。
欢迎任何帮助。
提前致谢。
每个人都有一个愉快的星期一。
CommunityPostController -> 代码 ->
public function creategif(Community $community)
{
return view('posts.creategif', compact('community'));
}
网络路由
Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('u/{id}', [App\Http\Controllers\HomeController::class, 'user'])->name('user.view');
Auth::routes(['verify' => true]);
Route::group(['middleware' =>['auth', 'verified']], function (){
Route::resource('communities', \App\Http\Controllers\CommunityController::class);
Route::resource('communities.posts', \App\Http\Controllers\CommunityPostController::class);
Route::resource('posts.comments', \App\Http\Controllers\PostCommentController::class);
Route::get('communities/{community}/posts/creategif', [\App\Http\Controllers\CommunityPostController::class, 'creategif']);
Route::get('posts/{post_id}/vote/{vote}', [\App\Http\Controllers\CommunityPostController::class, 'vote'])->name('post.vote');
});
查看文件结构
根据您的路线顺序和您post编辑的图像可能存在冲突。如您所见,您拥有路线资源,在这种情况下,这种冲突可能会根据路线顺序发生,而您的 laravel 实际上是在尝试获取 post
而不是加载 creategif
路线.
在这种情况下,每次您尝试访问 creategif
路由时,您的应用程序实际上是在尝试加载基于 'communities.posts'
路由的 post。
因此,根据您的路线顺序中的冲突,这可以正常工作,并且创建或与 'communities.posts'
相关的任何其他路线应该可以正常工作,但在 other-hand creategif
中 URL
可能被识别为与 'communities.posts'
资源相关的路由。
将你的路线移到顶部,或者在这种情况下就在 'communities.posts'
路线上方,不要忘记清除路线缓存。
Route::group(['middleware' =>['auth', 'verified']], function (){
Route::get('communities/{community}/posts/creategif', [\App\Http\Controllers\CommunityPostController::class, 'creategif']);
Route::resource('communities', \App\Http\Controllers\CommunityController::class);
Route::resource('communities.posts', \App\Http\Controllers\CommunityPostController::class);
Route::resource('posts.comments', \App\Http\Controllers\PostCommentController::class);
Route::get('posts/{post_id}/vote/{vote}', [\App\Http\Controllers\CommunityPostController::class, 'vote'])->name('post.vote');
});
我正在尝试渲染视图,但我总是得到 notfoud 404 我不知道如何解决这个问题,如果有人能帮助我,我将不胜感激。 欢迎任何帮助。 提前致谢。 每个人都有一个愉快的星期一。
CommunityPostController -> 代码 ->
public function creategif(Community $community)
{
return view('posts.creategif', compact('community'));
}
网络路由
Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('u/{id}', [App\Http\Controllers\HomeController::class, 'user'])->name('user.view');
Auth::routes(['verify' => true]);
Route::group(['middleware' =>['auth', 'verified']], function (){
Route::resource('communities', \App\Http\Controllers\CommunityController::class);
Route::resource('communities.posts', \App\Http\Controllers\CommunityPostController::class);
Route::resource('posts.comments', \App\Http\Controllers\PostCommentController::class);
Route::get('communities/{community}/posts/creategif', [\App\Http\Controllers\CommunityPostController::class, 'creategif']);
Route::get('posts/{post_id}/vote/{vote}', [\App\Http\Controllers\CommunityPostController::class, 'vote'])->name('post.vote');
});
查看文件结构
根据您的路线顺序和您post编辑的图像可能存在冲突。如您所见,您拥有路线资源,在这种情况下,这种冲突可能会根据路线顺序发生,而您的 laravel 实际上是在尝试获取 post
而不是加载 creategif
路线.
在这种情况下,每次您尝试访问 creategif
路由时,您的应用程序实际上是在尝试加载基于 'communities.posts'
路由的 post。
因此,根据您的路线顺序中的冲突,这可以正常工作,并且创建或与 'communities.posts'
相关的任何其他路线应该可以正常工作,但在 other-hand creategif
中 URL
可能被识别为与 'communities.posts'
资源相关的路由。
将你的路线移到顶部,或者在这种情况下就在 'communities.posts'
路线上方,不要忘记清除路线缓存。
Route::group(['middleware' =>['auth', 'verified']], function (){
Route::get('communities/{community}/posts/creategif', [\App\Http\Controllers\CommunityPostController::class, 'creategif']);
Route::resource('communities', \App\Http\Controllers\CommunityController::class);
Route::resource('communities.posts', \App\Http\Controllers\CommunityPostController::class);
Route::resource('posts.comments', \App\Http\Controllers\PostCommentController::class);
Route::get('posts/{post_id}/vote/{vote}', [\App\Http\Controllers\CommunityPostController::class, 'vote'])->name('post.vote');
});