laravel 通过路由到“/user/{username}”获取用户信息无效
laravel get user info by routing to '/user/{username}' Not Working
我是 laravel 的新手,我无法通过路由 'user/{username}';
获取用户信息
理论上应该可行,这是我的路线:
Route::get('/user/{username}', function($username){
$user = User::where('username',$username) -> first();
if(isset($user['username'])){
return redirect()->route('/user/'.$username, ['user' => $user]);
}else{
return redirect()->route('/user/'.$username, ['error' => 'This User Does Not Exist']);
}
});
我在页面中做了 use App\User;
,所以它应该可以工作。我收到此错误:
NotFoundHttpException in RouteCollection.php line 161:
感谢任何帮助,谢谢,如果您需要更多信息以便提供帮助,请告诉我。
重定向采用路由名称,而不是您希望重定向到的路径。在您的代码中,为您的路线添加一个名称,如下所示:
Route::get('/user/{username}', function($username) {
[...]
})->name('username');
// Here we call our route 'username'
现在您可以像这样进行重定向:
// Note that we call redirect with the name we just gave it, passing the username value forward
return redirect()->route('username', ['username' => $user]);
编辑:看你的代码我不完全明白你想做什么。该代码看起来会创建一个重定向循环?看起来如果你找到一个用户,你会重定向回相同的路由?
你应该使用 firstOrFail。如果在数据库中找不到用户,此方法将抛出 404 错误。
使用 -> 调用用户列值。所以你的代码应该是这样的:
Route::get('/user/{username}', function($username){
$user = User::where('username',$username)->firstOrFail();
return view('viewname', ['user' => $user]);
}
不要忘记为您的用户页面创建一个视图。您还应该创建一个控制器来处理这个请求。
$user = User::where('username', '=', $user)->first();
试试这个..
我是 laravel 的新手,我无法通过路由 'user/{username}';
获取用户信息理论上应该可行,这是我的路线:
Route::get('/user/{username}', function($username){
$user = User::where('username',$username) -> first();
if(isset($user['username'])){
return redirect()->route('/user/'.$username, ['user' => $user]);
}else{
return redirect()->route('/user/'.$username, ['error' => 'This User Does Not Exist']);
}
});
我在页面中做了 use App\User;
,所以它应该可以工作。我收到此错误:
NotFoundHttpException in RouteCollection.php line 161:
感谢任何帮助,谢谢,如果您需要更多信息以便提供帮助,请告诉我。
重定向采用路由名称,而不是您希望重定向到的路径。在您的代码中,为您的路线添加一个名称,如下所示:
Route::get('/user/{username}', function($username) {
[...]
})->name('username');
// Here we call our route 'username'
现在您可以像这样进行重定向:
// Note that we call redirect with the name we just gave it, passing the username value forward
return redirect()->route('username', ['username' => $user]);
编辑:看你的代码我不完全明白你想做什么。该代码看起来会创建一个重定向循环?看起来如果你找到一个用户,你会重定向回相同的路由?
你应该使用 firstOrFail。如果在数据库中找不到用户,此方法将抛出 404 错误。
使用 -> 调用用户列值。所以你的代码应该是这样的:
Route::get('/user/{username}', function($username){
$user = User::where('username',$username)->firstOrFail();
return view('viewname', ['user' => $user]);
}
不要忘记为您的用户页面创建一个视图。您还应该创建一个控制器来处理这个请求。
$user = User::where('username', '=', $user)->first();
试试这个..