【发布时间】:2021-04-24 00:27:39
【问题描述】:
我有一个带有参数的命名路由,看起来像这样......
Route::get('/profile/{user_id}', [ProfileController::class, 'profile'])->name('profile');
现在在我的一个控制器中,
我有一个像这样调用这个路由的函数
public function _myFunction($some_data) {
return redirect()->route('profile', [$some_data->user_id]);
}
在我的 ProfileController's profile() 函数中,我有这个。
public function profile() {
return view('modules.profile.profile');
}
我已按照我在 SO 中找到的文档和一些指南进行操作,但我遇到了同样的错误,
"Route [profile] not defined."
谁能告诉我我哪里出错了?
这是我的 routes/web.php 的样子...
Route::middleware(['auth:web'])->group(function ($router) {
Route::get('/profile/{user_id}', [ProfileController::class, 'profile'])->name('profile');
});
【问题讨论】:
-
您是否缓存了您的路线?您在定义“名称”/“作为”的那一行的路线组中显示这条路线吗?
-
@lagbox 是的,我已经做到了。顺便说一句,我注意到一些奇怪的事情,我尝试删除路由中的参数并像
redirect()->route('profile')一样正常调用它,我注意到它在 URL 的末尾有一个哈希。它看起来像这样:mysite.com/profile# -
您确定您的用户已登录吗?您的路线需要身份验证。
-
@FaridVatani 是的,我已登录,我尝试在所有呼叫中使用
dd,但我注意到它没有通过ProfileController'sprofile()函数 -
好的,路由组中
$router参数在哪里使用?如果没有在任何地方使用,请清洁它。
标签: laravel laravel-routing laravel-8 url-parameters named-routing