【问题标题】:how to pass parameter to show() method in resource controller from another function如何从另一个函数将参数传递给资源控制器中的 show() 方法
【发布时间】:2016-05-27 19:49:58
【问题描述】:

我知道show($id) 方法的路由名称是some_name/parameter。这里我有一个登录身份验证机制,如果用户通过了身份验证,我想显示用户配置文件。我有一个名为loginUser() 的函数里面我的userController。我想在成功登录时将用户重定向到 user.show 路由。但我不确定如何将参数值传递给 show 方法。目前我收到错误:

缺少 [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);

}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    试试这个

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

    您不要在控制器中使用$name。删除重定向中的with

    【讨论】:

      【解决方案2】:

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

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

      例如,如果 $userId 为 1,这将解析为 URI:user/1

      如果要显示用户索引,那就另当别论了。

      【讨论】:

      • 非常感谢 :).. 我想我不再需要 with 子句了?
      • with子句用于消息传递,所以如果你不需要它,不要!更多信息在这里:laravel.com/docs/5.1/…
      猜你喜欢
      • 2017-04-08
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多