Laravel如何根据登录用户前缀添加路由前缀并复用路由?
解决Laravel重复定义前缀路由的方案
你可以通过循环遍历前缀数组的方式,只编写一次路由逻辑,自动生成对应不同前缀的路由,避免重复代码。具体实现如下:
// 定义需要生成路由的前缀数组 $prefixes = ['users', 'chancellors']; // 循环每个前缀,生成对应分组内的路由 foreach ($prefixes as $prefix) { Route::prefix($prefix)->group(function () use ($prefix) { Route::get('/report-feedback', [FeedbackController::class, 'feedbackForm']) // 自动生成带前缀的路由名称,方便后续调用 ->name("{$prefix}.feedbackForm.get"); }); }
这段代码会自动生成两个路由:
users/report-feedback,路由名称为users.feedbackForm.getchancellors/report-feedback,路由名称为chancellors.feedbackForm.get
两者指向同一个控制器方法FeedbackController@feedbackForm,完全满足你“仅编写一次路由,登录后对应不同前缀URL”的需求。
如果需要在控制器中区分当前请求的前缀,可以通过request()->route()->getPrefix()获取当前路由的前缀,进而做针对性处理。
内容的提问来源于stack exchange,提问作者Baby Babai
相关产品推荐
相关产品推荐

