发票应用程序正在使用 Laravel 进行开发。我将每个用户的日期和金额格式存储在 settings
中 table 。
用户登录时如何设置Session
多变的?请提出任何建议。我正在使用 Laravel 5.3。
最佳答案
当然,文档告诉我们如何 store session data *,但它们没有解决 OP 关于存储 session 数据的问题 在登录 .您有几个选择,但我认为最明确的方法是覆盖 AuthenticatesUsers 特征的身份验证方法。
将覆盖添加到您的 LoginController:
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
$this->setUserSession($user);
}
然后您可以将 session 设置为:
protected function setUserSession($user)
{
session(
[
'last_invoiced_at' => $user->settings->last_invoiced_at,
'total_amount_due' => $user->settings->total_amount_due
]
);
}
如果您想更聪明一点,您可以为 Login 或 Authenticated 事件创建一个监听器,并在其中之一时设置 session events * 火灾。
创建一个监听器,例如 SetUpUserSession:
<?php
namespace app\Listeners;
use Illuminate\Auth\Events\Login;
class SetUserSession
{
/**
* @param Login $event
* @return void
*/
public function handle(Login $event)
{
session(
[
'last_invoiced_at' => $event->user->settings->last_invoiced_at,
'total_amount_due' => $event->user->settings->total_amount_due
]
);
}
}
*链接转到 5.4,但这与 5.3 没有变化。
关于php - Laravel 用户登录时如何设置 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42360183/