现在使用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登录)
答案 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);
}
}