我知道show($id)
方法的路由名称是some_name/parameter
。在这里,我有一个登录身份验证机制,如果用户通过了身份验证,我想显示用户配置文件。我的userController
中有一个名为loginUser()
的函数。我想在成功登录后将用户重定向到 user.show 路由。但是我不确定如何将参数值传递给显示方法。目前我收到错误:
缺少 [路由: user.show] [URI: user/{user}] 的必需参数。
登录用户(( 函数:
public function loginUser(Request $request){
$data = $request->all();
$rules = array(
'name' => 'required',
'password'=>'required'
);
// Create a new validator instance.
$validator = Validator::make($data, $rules);
if($validator->fails()){
$errors=$validator->messages();
return redirect()->back()->withErrors($validator);
}else{
if(Auth::attempt(['name'=>$request['name'],'password'=>$request['password']])){
return redirect()->route('user.show')->with('name',$request['name']); // pass control to show() function
}else{
return redirect()->back()->with('data', 'wrong username or password');
}
}
}
userController中的show((方法:
public function show($user)
{
//
$info=userModel::where('id','=',$user)->get(array('name'));
return View::make('user.show')->with('name',$info);
}
您的路线user.show
需要一个 ID 来确定要显示的用户。喜欢这个:
redirect()->route('user.show', [$userId])->with(...);
例如,如果$userId为 1,则会解析为 URI:user/1
如果要显示用户索引,那是不同的路由。
试试这个
redirect()->route('user.show', [$userId]);
不要在控制器中使用$name
。 在重定向中删除with