繁体   English   中英

如何使用js-cookie在laravel 5.6或JavaScript上设置动态cookie

[英]How to set a dynamic cookie on laravel 5.6 or JavaScript using js-cookie

以前,我的英语不是我的母语,所以...很抱歉所有的拼写/错别字和其他。

我正在这个网站上工作,它需要向所有用户显示宣传视频(它必须是模式的)。 条件如下:

促销视频需要显示在网站的任何页面上。

如果用户看到了促销,它将在一周后再次显示给同一用户(如果促销仍处于活动状态)。

如果促销视频被另一个促销视频删除,则它必须显示新的促销视频(例如:如果用户在第1天和第3天访问该网站并看到该促销,则该促销视频已被删除或到期,而另一个促销视频已被设置,如果在一周过去后再次访问该网站,则需要向该用户显示该信息。

我当时在考虑使用Laravel Cookie,但被告知使用它们不是一个好习惯。 如果是这样,为什么?

现在,该应用程序正在使用js-cookie,并使用它来设置一些cookie。 有可能完成我想要的吗?

这是我代码的一部分

在我的ViewServiceProvider.php上,我有这个

public function boot()
{
    View::composer('layouts.partials.modals', PromotionalVideoComposer::class);

}

在PromotionalVideoComposer.php上

public function compose(View $view)
{
    $view->with('promotionalVideo', PromotionalVideo::active()->pluck('link')->first());
}

在partiasl.modals.blade.php上

// some modals

<!-- Modal Promotional Video -->
@if (isset($promotionalVideo))
    <div class="modal fade modal-player" id="promotional-video" role="dialog" tabindex="-1">
        <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close" dusk="close-promotional-video"><span aria-hidden="true">&times;</span></button>
                    <div class="modal-body player-container">
                        <iframe src="{{ $promotionalVideo }}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                    </div>
                </div><!-- .modal-header -->
            </div><!-- .modal-content -->
        </div><!-- .modal-dialog modal-lg -->
    </div><!-- .modal fade -->
@endif

和app.js

if (Cookie.get('promotionalVideoDisplayed') === undefined) {
    $('#promotional-video').modal('show');
    Cookie.set('promotionalVideoDisplayed', true, { expires: 7 });
}

// On close video modal stop/delete video iframe
$("#promotional-video").on('hidden.bs.modal', function () {
    var $iframe = "#promotional-video iframe";

    $($iframe).remove();
});

我建议不要使用cookie(可以将其删除或将其设置为不显示,从而多次显示相同的视频),而不是建议使用“用户ID”,“促销ID”和“上次查看”日期添加数据库条目。

然后从中读取内容,以决定是否显示视频。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM