我试图提出一个观点,但我总是得不到404我不知道如何再解决这个问题,如果有人能帮助我,我会很感激。欢迎任何帮助。提前谢谢。每个人都有一个美好的星期一。

CommunityPostController ->代码->
public function creategif(Community $community)
{
return view('posts.creategif', compact('community'));
}Web路由
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');
});视图文件结构

发布于 2022-05-02 15:30:07
根据您的路线顺序和您发布的图片,可能会出现冲突。如您所见,您有用于路由的资源,在本例中,这种冲突可能发生在路由订单的基础上,而您的laravel实际上正在尝试获取一个post,而不是加载creategif路由。
在这种情况下,每次尝试访问creategif路由时,应用程序实际上都试图加载基于'communities.posts'路由的post。

因此,基于您的路由顺序中的冲突,这是很好的工作方式,创建或者任何其他与'communities.posts'相关的路由都应该正常工作,但是在其他方面,URL中的creategif可能会被认为是与'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');
});https://stackoverflow.com/questions/72088075
复制相似问题