Laravel项目路由和控制器存在但访问活动详情页返回404错误如何解决
问题排查&修复方案
核心错误1:路由参数定义错误
你当前的路由代码最后一段写的是固定字符串id,而非动态参数,所以event/xxx/123这类路径完全无法匹配路由规则,自然返回404。修正后的路由代码如下:
Route::get('event/{slug}/{id}', [Home_Controller::class,'singleevent'])->name('singleevent');
规范优化1:控制器参数名对齐路由参数
虽然Laravel默认按参数顺序匹配传值,但为了避免后续隐式模型绑定等场景出错,建议控制器方法的参数名和路由定义的参数名保持一致,修正后的控制器代码如下:
public function singleevent ($slug, $id){ $events = Events::find($id); return view('frontend.singleevent',compact('events')); }
规范优化2:跳转链接使用路由名生成
你现在用url()硬拼路径容易因为后续路由调整出问题,改成用已定义的路由名生成链接更稳妥,也能避免拼写错误,修正后的链接代码如下:
<a href="{{ route('singleevent', ['slug' => Str::slug($eve->eve_name), 'id' => $eve->id]) }}" class="schedule-btn">View Details</a>
补充说明
如果修改完路由后仍然返回404,可执行命令php artisan route:clear清理路由缓存后再测试。
内容的提问来源于stack exchange,提问作者stephen waweru99
相关产品推荐
相关产品推荐

