如何在laravel中根据登录用户前缀添加路由前缀?

jv2fixgn  于 2023-06-30  发布在  其他
关注(0)|答案(2)|浏览(121)

我有一个反馈路由,userschancellors前缀都可以访问,但问题是我想在web.php中写一次,现在我必须在userschancellors前缀中写多次,而且我必须更改路由名称,这是我不想做的。有什么办法可以做到这一点吗?
当我在userschancellors前缀之外正常使用它时,两者都可以访问它,但它缺少userschancellors前缀。我希望在用户使用userschancellors前缀登录时写入此路由一次,以使users/report-feedbackchancellors/report-feedback

Route::get('/report-feedback', [FeedbackController::class, 'feedbackForm'])->name('feedbackForm.get');
qnyhuwrf

qnyhuwrf1#

如果你想要多个路由,你需要多次定义它们。您可以使用路由组将路由放在一起,但要预定义用作参数的回调函数:

use App\Http\Controllers\FeedbackController;
use Illuminate\Routing\Router as RoutingEngine;
use Illuminate\Support\Facades\Route;

$routes = function (RoutingEngine $router) {
    $router->get('/report-feedback', [FeedbackController::class, 'feedbackForm'])
        ->name('feedbackForm.get');
};

Route::name("users.")->prefix("users")->group($routes);
Route::name("chancellors.")->prefix("chancellors")->group($routes);

这将为URL users/report-feedback创建一个名为users.feedbackForm.get的路由,并为URL chancellors/report-feedback创建另一个名为chancellors.feedbackForm.get的路由。

gfttwv5a

gfttwv5a2#

你可以用

Route::get('{type}/report-feedback', [FeedbackController::class, 'feedbackForm'])
->where('type', 'users|chancellors')
->name('feedbackForm.get');

相关问题