我知道show($id)
方法的路由名称是some_name/parameter
。这里我有一个登录验证机制,如果用户通过了身份验证,我想显示用户配置文件。我有一个名为的函数我loginUser()
内的userController
。我想在成功登录时将用户重定向到user.show路由。但我不知道如何将参数值传递给show method。目前我收到错误:
缺少[Route:user.show] [URI:user / {user}]所需的参数。
loginUser()函数:
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);
}
答案 0 :(得分:3)
您的路由user.show
需要一个ID来确定要显示的用户。像这样:
redirect()->route('user.show', [$userId])->with(...);
例如,如果$ userId为1,则会解析为URI:user / 1
如果要显示用户索引,那就是不同的路径。
答案 1 :(得分:1)
试试这个
redirect()->route('user.show', [$userId]);
你不能在控制器中使用$name
。在重定向中删除with