我想通过在cookie中设置Laravel 5来检查这是否是用户首次访问我的网站。如果是,则在导航栏中淡入(我正在使用Twitter Bootstrap 3.3.1和animate.css)。在以后的访问中,我要检查cookie以及它是否存在,然后显示没有动画的默认导航栏。
需要说明的是,我已经使动画工作了,这只是我感兴趣的Laravel cookie的设置和检索。
我可以使用this solution来运行它,但是我想尝试使用Laravel使其运行。
使用Laravel实施此功能有什么好处/缺点?
最佳答案
首先,使用Laravel进行操作的好处主要是,您可以获得与其他(服务器端)代码相匹配的语法,并且通常可以直接使用。
使用此功能的一个好地方是view composer。每当渲染特定视图时,都会触发视图作曲家。该文档说明了如何添加新的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文档中阅读的一些内容写的。另外,即使它碰巧可以工作,我也不知道这是否仍然是一个好习惯。