2016-02-16 26 views
0

我知道show($id)方法的路由名称是some_name/parameter。在这里我有一个登录身份验证机制,并且如果用户通过了我有一个函数loginUser()里面我的userController。我想重定向用户user.show路由成功login.But我不知道如何传递参数值来显示方法。目前我得到的错误:如何将参数传递给另一个函数的资源控制器中的show()方法

Missing required parameters for [Route: user.show] [URI: user/{user}].

loginUser()函数:

012在UserController的
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'); 
      } 
     } 
    } 

show()方法:

public function show($user) 
{ 
    // 
    $info=userModel::where('id','=',$user)->get(array('name')); 
    return View::make('user.show')->with('name',$info); 

} 

回答

3

您的路线user.show需要一个ID来确定显示哪个用户。就像这样:

redirect()->route('user.show', [$userId])->with(...); 

例如,如果$用户id为1,这样就解决到URI:用户/ 1

如果你想显示用户指数,这是一个不同的路线。

+0

非常感谢:) ..我不需要with子句了,我想呢? –

+0

with子句用于消息传递,所以如果你不需要它,不!更多信息在这里:https://laravel.com/docs/5.1/responses#redirecting-with-flashed-session-data – martinczerwi

1

试试这个

redirect()->route('user.show', [$userId]); 

你不使用控制器$name。删除with重定向

+0

谢谢:) ............. –

相关问题