Laravel - 仅在屏幕尺寸>包含文件时768px

时间:2016-09-22 22:24:57

标签: javascript php laravel google-dfp

我有一个棘手的情况,我需要在移动设备上移动我的Google广告。我发现最好的方法是使用@include调用它们,但仅限于满足某些屏幕尺寸条件。

我认为以下内容可行

@if($screensize < 768px)
  @include('partials.my-advert')
@endif

所以我的问题是我如何将屏幕尺寸变成PHP?我可以使用$(window).width();通过JS获取屏幕大小,但是如何在Laravel if语句中使用此值?

2 个答案:

答案 0 :(得分:8)

尝试这样做绝对没有意义,因为整个方法都是过时的。当然,您可以将$(window).width()从javascript中的客户端传递回PHP中的服务器,但是如果用户调整窗口大小会怎样?

这就是为什么今天鼓励的是responsive design。甚至是Google Adsense has responsive ad units

响应式设计并不要求后端知道有关客户端的任何信息,以便在页面上正确呈现内容。相反,客户端不做任何关于如何在客户端UA上呈现内容的假设,并允许高级CSS和JS直接和响应地处理呈现。这意味着,无论屏幕尺寸如何,您的内容都不会有所不同。

Bootstrap是一个利用响应式设计的前端框架。 Material design也有many implementations也有响应。

答案 1 :(得分:5)

您无法使用PHP检测屏幕大小,但也可以检测代理。有一个package,它可以轻松地检测代理,从而可以检测到请求是来自桌面/平板电脑/移动设备。

要通过composer安装它,您可以运行以下命令。

$ composer require jenssegers/agent

然后将服务提供商的dd添加到文件config/app.php中的提供者密钥。

Jenssegers\Agent\AgentServiceProvider::class

此外,将代理别名添加到别名键

'Agent' => Jenssegers\Agent\Facades\Agent::class

最后,将代理变量从控制器传递到视图。

$agent = new Agent();
return view('some.view', compact('agent'));

然后在您的视图中,您可以检查代理是否属于某个手机。

@if($agent->isMobile())
  @include('partials.my-advert')
@endif