Laravel重定向

时间:2019-07-16 03:34:34

标签: php laravel

现在使用laravel 5.6,很快就会更新到5.8。

问题很简单,我想在登录后进行重定向(这一次,仅想添加一些重定向逻辑以便稍后使用)。 在这种情况下,我设置了登录中间件,以将$request->getBackURI()作为参数发送到登录视图。

一旦我进入登录表单,我就可以将redirect_to视为查询字符串,但是当我登录并希望看到$request->get('redirect_to')时,它是空的,因为我没有将其发送为实际登录控制器的参数。

我在请求会话中保存了它,但是突然出现了另一个我没有看到的变量

{session:
...
url => www.foo.bar/pathtoredirect,
redirect_to => /pathtoredirect} -> this is the one I stored

问题是,一旦我进入了重定向方法,我真的无法访问任何东西,这是一个无效函数

protected function redirectTo()
{
    return route('main.index');
}

如果我包含获得的Request对象

Too few arguments to function App\Http\Controllers\Auth\LoginController::redirectTo(), 0 passed ... on line 15 and exactly 1 expected

对于这种情况,我知道只是一个重定向,从路径->登录->我可以使用的路径

protected function redirectTo()
{
    return back();
}

我只想知道是否有任何方式可以实现我的做事方式,或者Laravel方式每次都可以工作(例如:不只是1个重定向,想象一些中间件请求或Facebook登录)

1 个答案:

答案 0 :(得分:1)

您好,您可以覆盖默认的登录功能,登录后的功能也可以在Laravel中

from tkinter import *

#change dir
import os
os.chdir("C:/Users/user/Desktop/Learn Python")

#add delay
import time

##### main:
window = Tk()

##### My Photo
photo1 = [PhotoImage(file="anime.gif", format="gif -index %i" %(i)) for i in range(85)]

#update image
def update(ind):
    frame = photo1[ind]
    if ind < 84:
        ind += 1
    else:
        ind = 0
    label.configure(image=frame)
    window.after(80, update, ind)
label = Label(window, bg="black")
label.pack()
window.after(0, update, 0)

#####run the main loop
window.mainloop()

在全球范围内,您都可以在不传递请求的情况下呼叫请求

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    /**
    * The user has been authenticated.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  mixed  $user
    * @return mixed
    */
    protected function authenticated(Request $request, $user)
    {
      // in here you can do what ever you want 
        $path = $request->get('redirect_to')
        return redirect($path);
    }
}