Laravel 5 comment utiliser le paramètre get à partir de l'url avec le contrôleur d'inscription de la méthode de

Je suis en train de mettre en œuvre un système de connexion où l'utilisateur sera de redirection seulement si il existe un paramètre get dans l'url, sinon, il sera rediriger vers la page de profil.

Donc, si l'uri est quelque chose comme cela (pas de paramètre get)

/login

si le succès, l'utilisateur sera rediriger vers la page de profil.

Mais si l'uri est le paramètre get, comme par exemple

/login?r=articles

l'utilisateur sera redirigé vers la page des articles au lieu de la route par défaut à la page de profil.

Question est, dans le contrôleur, comment pouvez le faire, si possible, ou comment puis-je vérifier le paramètre get?

routes.php

//Signin
Route::post('/account/signin', [
    'uses' => 'UserController@postSignIn',
    'as' => 'user.signin',
]);

UserController.php

//Signin
public function postSignIn(Request $request)
{
    $this->validate($request, [
        'login-email' => 'required|email',
        'login-password' => 'required'
    ]);

    if ( Auth::attempt(['email' => $request['login-email'], 'password' => $request['login-password']]) )
    {

        //Tried this, isn't working... (maybe something's missing ??)
            $redirect = $request->input('r');
            if ($redirect) {
                return redirect()->route($redirect);
            }
        //-->

        return redirect()->route('user.account');
    }
    return redirect()->back();
}

signin.blade.php

<form role="form" action="{{ route('user.signin') }}" method="post" class="login-form" name="login">

    <div class="form-group {{ $errors->has('login-email') ? 'has-error' : '' }}">
        <label class="sr-only" for="email">Email</label>
        <input type="text" name="login-email" value="{{ Request::old('login-email') }}" placeholder="Email..." class="form-username form-control" id="form-username">
    </div>

    <div class="form-group {{ $errors->has('login-password') ? 'has-error' : '' }}">
        <label class="sr-only" for="password">Password</label>
        <input type="password" name="login-password" value="{{ Request::old('login-password') }}" placeholder="Password..." class="form-password form-control" id="form-password">
    </div>

    <div class="form-group">
        <input type="checkbox" name="remember" value="{{ Request::old('remember') }}" id="remember">
        Remember
    </div>

    <button type="submit" class="btn">Sign in!</button>

    <input type="hidden" name="_token" value="{{ Session::token() }}">
</form>

Grâce.

Mis à jour

Merci à vous tous pour vos réponses, le fait est que je suis encore en train de connaître Laravel et c'est probablement pourquoi je ne peux pas mettre en œuvre les solutions que vous avez partagé.

Donc, cela dit, j'ai eu de travail par la création d'un conditionnel champ caché qui contient la valeur de la requête et de cette façon, une fois que l'utilisateur soumet le formulaire, il sera passé avec le reste de l' $response arguments.

signin.blade.php

<form role="form" action="{{ route('user.signin') }}" method="post" class="login-form" name="login">

    <div class="form-group {{ $errors->has('login-email') ? 'has-error' : '' }}">
        <label class="sr-only" for="email">Email</label>
        <input type="text" name="login-email" value="{{ Request::old('login-email') }}" placeholder="Email..." class="form-username form-control" id="form-username">
    </div>

    <div class="form-group {{ $errors->has('login-password') ? 'has-error' : '' }}">
        <label class="sr-only" for="password">Password</label>
        <input type="password" name="login-password" value="{{ Request::old('login-password') }}" placeholder="Password..." class="form-password form-control" id="form-password">
    </div>

    <div class="form-group">
        <input type="checkbox" name="remember" value="{{ Request::old('remember') }}" id="remember">
        Remember
    </div>

    <button type="submit" class="btn">Sign in!</button>

    <input type="hidden" name="_token" value="{{ Session::token() }}">
    <!-- Verify condition -->
    @if(isset($_GET['referer']))
        <input type="hidden" name="referer" value="{{ $_GET['referer'] }}">
    @endif
</form>

UserController.php

//Signin
public function postSignIn(Request $request)
{
    $this->validate($request, [
        'login-email' => 'required|email',
        'login-password' => 'required'
    ]);

    if ( Auth::attempt(['email' => $request['login-email'], 'password' => $request['login-password']]) )
    {

        //Check for the new argument 'referer'
        if (isset($request->referer)) {
            return redirect()->route($request->referer);
        }
        //-->

        return redirect()->route('user.account');
    }
    return redirect()->back();
}

Comme si, il fonctionne.

Ne sais pas si c'est viable et sûr de le faire dans Laravel 5, mais il est de travail.

s'il vous plaît accepter ma réponse
désolé @ManashSonowal mais je n'arrive pas à le faire fonctionner...

OriginalL'auteur Bruno | 2016-06-29