laravel登录后重定向到上一页

15 浏览
0 Comments

laravel登录后重定向到上一页

我有一个视图(URL:/equip-planner),其表单如下:

{{ csrf_field() }}

路由:

Route::get('/equip-planner', 'EquipmentController@ep')->name('equip-planner');

Route::resource('equips', 'EquipmentController');

控制器构造函数:

public function __construct(){

$this->middleware('auth', ['except' => ['index', 'show','create','home','ep']]);

}

当我提交我的表单时,首先会检查用户是否已登录,因为资源方法“store”没有在控制器的构造函数的except列表中。所以,如果用户未登录,他将被重定向到登录页面,这是可以的。

但是:成功登录后,用户将被重定向到/equips而不是/equip-planner。我猜这是因为表单操作([...]action="{{ url('equips')}}[...])。

有人有想法如何更改重定向,以便用户将被发送回/equip-planner吗?...这是否可能?我认为还必须有另一步退回,因为步骤是:/equip-planner -> /equips -> 登录 -> 返回之前的网站,即/equips?

编辑:

我的App/Http/Middleware/RedirectIfAuthenticated.php内容:

public function handle($request, Closure $next, $guard = null)

{

if (Auth::guard($guard)->check()) {

return redirect()->intended('/home');

}

return $next($request);

}

0
0 Comments

在laravel中,有一个问题是用户在登录后无法重定向到之前的页面。这个问题的原因是没有正确设置重定向。解决方法是在登录控制器中使用Laravel的`redirect()->back()`方法来重定向到上一页。

首先,我们需要在登录控制器的`login()`方法中添加一个重定向:

public function login(Request $request)
{
    // 验证用户登录信息
    $this->validate($request, [
        'email' => 'required|email',
        'password' => 'required',
    ]);
    // 尝试登录
    if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
        // 登录成功
        return redirect()->intended('/'); // 重定向到之前的页面或者默认页面
    }
    // 登录失败
    return redirect()->back()->withInput($request->only('email')); // 重定向到上一页并保留用户输入的邮箱
}

上述代码中,`redirect()->intended('/')`方法会重定向到之前的页面,如果没有之前的页面则重定向到默认页面。`redirect()->back()`方法会重定向到上一页。

通过以上的代码调整,用户在登录后会被正确地重定向到之前的页面。

0
0 Comments

问题描述:laravel登录后如何重定向到之前的页面,并且如何传递消息。

原因:在laravel中,登录后的重定向可以使用return redirect()->back()实现,该方法会将用户重定向到之前访问的页面。同时,如果需要在重定向后传递消息,可以使用with方法。

解决方法:使用return redirect()->back()可以实现登录后重定向到之前的页面。如果需要传递消息,可以使用with方法。

示例代码:

// 登录成功后重定向到之前的页面
return redirect()->back();
// 重定向并传递消息
return redirect()->back()->with('message', '登录成功');

以上就是laravel登录后重定向到之前页面的原因和解决方法。使用return redirect()->back()可以实现重定向,而with方法可以用于传递消息。

0