PHP Laravel在重定向中将参数作为发布数据传递

时间:2013-12-27 05:36:18

标签: php laravel oauth-2.0

注册成功后,我想将所有数据作为POST传递到登录路由。你如何在laravel 4中做到这一点?

我知道我可以在注册后对用户进行身份验证,但登录页面还有其他参数和更多必需的身份验证过程。

所以我希望将注册过程中输入的用户名和密码推送到登录过程中,以便它可以通过登录路由中的其他进程。 (例如令牌生成需要app_id和app_secret的后期数据)

4 个答案:

答案 0 :(得分:0)

您可以使用Laravel Events执行此操作:

filters.php注册您的活动或创建events.php并将其添加到composer.json

Event::listen('user.registered', function($data)
{
    var_dump($data['app_id']);
    var_dump($data['app_secret']);
    var_dump($data['user']);
});

然后用register()方法点击它:

public function register()
{
    /// register your user:

    $user = new User;

    ...

    $user->save();

    /// fire the event:

    Event::fire('user.registered', array(
                                        'app_id' => 'API', 
                                        'app_secret' => 'WHATEVER', 
                                        'user' => $user
                            ));

    /// Redirect the user to where it should go next:

    return Redirect::to('/');
}

答案 1 :(得分:0)

为什么不将很多额外的逻辑移到用户模型中。然后,您可以在登录后和注册后调用$user->crazySecureLogin();。这样你就可以保持DRY,它也可能会清理你的登录控制器方法。最重要的是,您不必担心发送帖子请求作为回复。

答案 2 :(得分:0)

return Redirect::to('routename')->withInput();

return Redirect::to('routename')->with('email', $emailvalue)->with('password', $passwordValue)

答案 3 :(得分:0)

  1. 在您的课程上添加名称空间

    use Redirect;
    
  2. 将此代码添加到重定向阶段。

    return Redirect::route('route_name',['username' => $request->username, 
                                         'password' => $request->password]);