我想通过在cookie中设置Laravel 5来检查用户是否第一次访问我的网站。如果是,则淡入导航栏(我正在使用Twitter Bootstrap 3.3.1和animate.css)。在后续访问中,我想检查cookie以及是否存在,然后显示没有动画的默认导航栏。
为了清楚起见,我已经让动画工作了,它只是我感兴趣的Laravel cookie的设置和检索。
我已经了解了如何使用this solution,但我想尝试使用Laravel。
使用Laravel实现此功能有任何好处/不足吗?
答案 0 :(得分:0)
首先,使用Laravel进行此操作的优势主要在于您获得了与您的(服务器端)代码的其余部分相匹配的良好语法,并且您拥有通常可以开箱即用的功能。
此功能的一个好地方是view composer。每次呈现特定视图时都会触发视图编辑器。文档说明了如何添加新的视图编辑器。在服务提供商内部,您将拥有:
public function boot(ViewFactory $view)
{
$view->composer('the-name-of-your-view-with-the-navbar', 'App\Http\ViewComposers\NavbarComposer');
}
这就是你的NavbarComposer
应该是什么样的
class NavbarComposer {
protected $cookie;
public function __construct(Cookie $cookie){
$this->cookie = $cookie;
}
public function compose(View $view){
$imNew = !$this->cookie->has('visited');
if($imNew == true){
$this->cookie->queue('visited', true, 2628000); // this is the value for 5 years
}
$view->with('imNew', $imNew);
}
}
然后在您的视图中,您可以使用$imNew
作为变量
@if($imNew)
{{-- show animation --}}
@endif
注意此代码未经过测试。我根据我对Laravel 4的了解以及我在Laravel 5文档中阅读的一些内容编写了它。此外,如果它偶然发生,我不知道这是否仍然是一种良好的做法。