如何将参数从另一个函数传递给资源控制器中的 show() 方法



我知道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

最新更新