我正在laravel 5.7中尝试在我的应用程序中分4步付款
然后我想将这些数据分4步存储,直到付款完成,然后再将它们存储在数据库中
这4个步骤包含:
现在,请喜欢您的方式
要使用哪个? cookie 或会话或其他?
我会使用会话,但是我希望5分钟后销毁那些数据,如果我将会话生存期选择为5分钟,则所有会话数据都会像登录会话一样销毁,而我只想销毁我创建的会话。
答案 0 :(得分:0)
要临时存储的数据是根据电子商务的购物车报价数据。您可以将此数据存储在数据库中,其时间戳列expires_at
的值为current time + 5 minutes
。
然后在模型全局范围内,它将始终过滤查询并仅获取未过期的数据:
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('expires_at', function (Builder $builder) {
$builder->where('expires_at', '<=', Carbon::now());
});
}
答案 1 :(得分:0)
会话提供了一种在多个请求中存储有关用户信息的方法,您应该检查https://laravel.com/docs/5.7/session对我而言是最佳选择。在会话驱动程序配置选项中,您可以定义每个请求的会话数据存储位置。 (例如cookie
)将会话存储在安全的加密cookie中。
然后,对于您有关销毁数据的问题,可以使用forget方法从会话中删除一条数据。如果要从会话中删除所有数据,则可以使用flush方法。
// Forget a single key...
$request->session()->forget('key');
//or
$request->session()->flush();