在遇到相同问题后,我进行了一些查询,并找到了一种设置非主页的方法。我更改了很多东西,但希望这对你也有用!
TLDR
Spark::afterLoginRedirectTo('somenewplace');
选项1
使用的变量是:$afterLoginRedirectTo
,来自vendor\laravel\spark\src\Configuration\ManagesAppOptions.php。
您可以在SparkServiceProvider@boot方法中设置它:
Spark::afterLoginRedirectTo('somenewplace');
Spark有自己的LoginController \vendor\laravel\spark\src\Http\Controllers\Auth\LoginController.php
其中有一个authenticated方法来处理双因素身份验证设置:
if (Spark::usesTwoFactorAuth() && $user->uses_two_factor_auth) {
return $this->redirectForTwoFactorAuth($request, $user);
}
return redirect()->intended($this->redirectPath());
RedirectPath()来自于仍在供应商中的RedirectsUsers trait,它执行以下操作:
return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
LoginController中的redirectTo是在构造方法中设置的:
$this->redirectTo = Spark::afterLoginRedirect()
选项 2
创建一个新的路由来覆盖登录功能。
在 web.php 中指定一个新的路由用于 post 登录:
Route::post('/login', 'Auth\NewLoginController@login');
你可以扩展LoginController并覆盖authenticated方法:
class LoginController extends \Laravel\Spark\Http\Controllers\Auth\LoginController
{
public function authenticated(Request $request, $user)
{
if ($user->last_page_accessed != null) {
$this->redirectTo = $user->last_page_accessed;
}
return parent::authenticated($request, $user);
}
}
Spark::afterLoginRedirectTo('/home');
æ·»åŠ åˆ°app/Providers/SparkServiceProvider.php
çš„booted()
方法ä¸ï¼Œå¯¹æˆ‘很有效。 - Cotton